System and method for auctioning targeted advertisement placement for video audiences

ABSTRACT

A method of auctioning targeted advertisement placement for video audiences, contains the steps of: receiving one or more advertising campaign, where each advertising campaign is defined by one or more advertisement effect criteria, and where each advertising campaign is for providing one or more advertisement to one or more viewer profile; receiving at least one bid for at least one of the one or more advertisement campaign; determining an optimal placement of a requested advertisement based upon the advertisement effect criteria and bid prices provided, so as to optimize revenue; and billing an advertiser according to a level at which a request of the advertiser, as defined by an associated advertising campaign, was supplied and actual viewership of the one or more advertisement associated with the advertising campaign.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to copending U.S. ProvisionalApplication entitled, “SYSTEM AND METHOD FOR PROVIDING PERSONALADVERTISEMENTS FOR AN ACCESS NETWORK,” having Ser. No. 60/956,728, filedAug. 20, 2007, which is entirely incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to advertising, and more particularly isrelated to auctioning advertisements to video services.

BACKGROUND OF THE INVENTION

Owners of products and services, also referred to herein as advertisers,spend significant funds advertising on television. In addition,advertisers seek to maximize return from their investment in advertisingon television by using different techniques. Furthermore, the servicesuppliers, such as channel producers, cable service operators and othersseek to maximize their revenue by efficiently utilizing commercialbreaks to include the highest revenue advertisements in an optimalplacement and for optimal viewer crowds.

The advertisers also currently have no simple unified interface,allowing them to bid prices for different combinations of date, time,geographic location, and target audience. Such a mechanism wouldautomate the interaction of current service providers, allowing theproviders to interact and appeal to larger crowds of advertisers,including small advertisers, currently unable to compete in thetelevision advertisement market due to cost.

There is a need for an automated advertising system and method that willincrease the value for both advertisers and service providers byallowing more flexibility in the possible combinations of time slots,channel selection, population profile targeted and the optimization ofthe population slicing as to maximize the revenue and the costumersatisfaction.

Thus, a heretofore unaddressed need exists in the industry to addressthe aforementioned deficiencies and inadequacies.

SUMMARY OF THE INVENTION

Embodiments of the present invention provide a system and method forproviding auctioning of targeted advertisement placement for videoaudiences. Briefly described, in architecture, one embodiment of thesystem, among others, can be implemented as follows. The system containslogic configured to receive one or more advertising campaign, where eachadvertising campaign is defined by one or more advertisement effectcriteria, and where each advertising campaign is for providing one ormore advertisement to one or more viewer profile; logic configured toreceive at least one bid for at least one of the one or moreadvertisement campaign; logic configured to determine an optimalplacement of a requested advertisement based upon the advertisementeffect criteria and bid prices provided, so as to optimize revenue; andlogic configured to bill an advertiser according to a level at which arequest of the advertiser, as defined by an associated advertisingcampaign, was supplied and actual viewership of the one or moreadvertisement associated with the advertising campaign.

The present invention can also be viewed as providing methods forauctioning targeted advertisement placement for video audiences. Oneexample of the method contains the steps of: receiving one or moreadvertising campaign, where each advertising campaign is defined by oneor more advertisement effect criteria, and where each advertisingcampaign is for providing one or more advertisement to one or moreviewer profile; receiving at least one bid for at least one of the oneor more advertisement campaign; determining an optimal placement of arequested advertisement based upon the advertisement effect criteria andbid prices provided, so as to optimize revenue; and billing anadvertiser according to a level at which a request of the advertiser, asdefined by an associated advertising campaign, was supplied and actualviewership of the one or more advertisement associated with theadvertising campaign

Other systems, methods, features, and advantages of the presentinvention will be or become apparent to one with skill in the art uponexamination of the following drawings and detailed description. It isintended that all such additional systems, methods, features, andadvantages be included within this description, be within the scope ofthe present invention, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the invention can be better understood with reference tothe following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present invention. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a schematic diagram illustrating an example of an IPTV networkin which the present system may be provided.

FIG. 2 is a flow chart further illustrating the process of personalizingadvertisements, in accordance with one exemplary embodiment of theinvention.

FIG. 3 is a flow chart further illustrating the process of identifyingand associating consumer profiles to set top boxes within a supervisedlearning scenario.

FIG. 4 is a schematic diagram illustrating an example of a cable networkin which the present system may be provided.

FIG. 5 is a schematic diagram illustrating an example of a satellitenetwork in which the present system may be provided.

FIG. 6 is a schematic diagram illustrating an example of a terrestrialnetwork in which the present system may be provided.

FIG. 7 is a flow chart further illustrating the steps of the supervisedlearning process.

FIG. 8 is a flow chart further illustrating the process of identifyingand associating consumer profiles to set top boxes within anunsupervised learning scenario.

FIG. 9 is a block diagram further illustrating functionality of themanagement application as blocks of logic.

FIG. 10 is a detailed logical flow diagram illustrating a sequence ofevents performed during unsupervised learning.

FIG. 11 is a flow chart further illustrating a process for determiningtargeted rating.

FIG. 12 is a flow chart illustrating a process for obtaining a contentto viewer profile assignment.

FIG. 13 is a flowchart illustrating functions performed by the presentsystem and method during execution of the real time targeted ratingprocess.

FIG. 14 is a flow chart further illustrating the process of determiningif a set top box is on or off.

FIG. 15 is a schematic diagram illustrating an example of a generalpurpose computer that can implement the advertisement auctioning systemand method of the present invention.

FIG. 16 is a schematic diagram further illustrating functional blocksrepresenting functionality defined by the software of FIG. 15, inaccordance with a first exemplary embodiment of the invention.

FIG. 17 is a flow chart further illustrating functionality provided bythe present advertisement auctioning system, when advertisement is to beprovided to a specific desired targeted viewership.

FIG. 18 is a flow chart further illustrating examples of functionalitythat may be performed during billing calculation.

DETAILED DESCRIPTION

The present system is capable of learning the viewing habits of videoviewers by collecting zapping events and other events performed by theviewer. Such videos may be viewed via a television, hand held device,computer, or any device capable of displaying video. The events may becollected at a set top box, computer, or other device. Alternatively,the events may be collected at a different location, such as, but notlimited to, at an access multiplexer located in a head end, or in adevice located separate from the head end. The system learns the viewinghabits and zapping habits of different population profiles byidentifying the viewing profile of a household.

The system uses supervised or unsupervised learning functionality foridentifying different population profiles, and provides a representationof the probability (or another form of representation) of eachpopulation profile to watch any given program and to present a zappingpattern. The probabilities can be utilized as a tool for advertiserssearching for the demographic profile of the audience of a televisionprogram, or, using inference functionality described herein, to identifythe home audience at each household, and the specific viewers of atelevision program. Thereafter, the system is capable of supplyingpersonalized content, such as, but not limited to, advertisements, videoselections, and other content, to the viewers. It should be noted thatthe following description provides an example in which the content is anadvertisement, however, the invention is not intended to be limited toadvertisements, but instead, any content that may be personalized.

The present system collects the operations performed by viewers atservice decoders, such as, but not limited to, set top boxes (the termset top box is used hereafter). The system then employs unsupervised orsupervised learning functionality, as described herein, to interpret theoperations at each set top box as the sum of operations of all viewersassociated with this set top box. The system learns to identifydifferent viewer profiles in the population and associates with each settop box and profile a probabilistic model of the viewing and zappinghabits of viewers.

The present system and method also provides a user interface thatprovides an advertiser that wishes to advertise to such profiles withmeans of bidding for requested time slots for specified or unspecifiedaudience profiles, dates, channels and programs. The system and methodalso provides an automated method of determining the winning bids to beplaced in broadcasted content. The invention further includes a billingsystem for determining the prices charged from the advertisers basedupon the viewership and the bids placed.

It should be noted that the present system and method may be providedwithin different infrastructures. As an example, the followingdescription provides examples of using the present system and method inan Internet protocol television (IPTV) infrastructure, in a cableinfrastructure, and in a satellite infrastructure. While theseinfrastructures are described herein, the present system and method isnot intended to be limited to these infrastructures.

While the following describes the present system and method in detail itis beneficial to provide certain definitions.

Set top box (STB) or service decoder: A set top box or service decoderis a device responsible for converting digital (or analog) contentreceived into viewable content that may be fed into a television set orother monitor. The set top box or service decoder may be located at ahousehold or another location.

Platform: A network of service decoders (e.g., set top boxes) of aspecific television service provider.

Passive audience identification: Identification of the viewer's profileswithout any specific actions performed by the viewer.

Zapping event: A zapping event is an event where there is switching froma current service to another service, where the switching is performedby, for example, but not limited to, use of a remote control, pushingbuttons on the set top box, or any action that causes switching,including, but not limited to, voice commands, or even consumer motionswithout pressing buttons. In addition, a zapping event may be othermeans for communicating with a set top box, such as, but not limited to,pressing an electronic program guide, pressing a volume button, andother actions involving the set top box.

Zapping pattern: A zapping pattern is the behavior of a viewingindividual in terms of zapping, such as, but not limited to, programswatched, frequency of zapping events, and variance of zapping frequency.

Set top box (STB) zapping signature: Records of zapping events of aparticular set top box.

Set top box (STB) signature: Data model providing characteristics of aset top box including: an association between a set top box and contentavailable to the set top box, where the content is either provided ornot provided via the set top box during a time period; and/or, at leastone zapping pattern associated with the set top box. It should be notedthat herein when referring to set top box signatures, one or more settop box signature is included. In addition, content availability refersto content that the set top box has access to and can provide.

Zapping log: Records of the set top box zapping signatures for an entireset top box network (Platform) or for part of the network.

Channel: A stream of programs broadcasted consecutively from a contentsource.

Program: Content that was broadcasted on a specific channel at aspecific date and time, whether on demand or generally broadcasted.

Program rating: Percent of viewers that watched the program.

Targeted program rating: Percent of viewers of specific profile thatwatched the program.

Channel rating: Percent of viewers that watched the channel during thespecified time period.

Targeted channel rating: Percent of viewers of specific Profile thatwatched the channel during the specified time period.

Profile: The classification of an individual into one of severalpopulation groups that is targeted. Such profiles may be, for example,but not limited to, psychographic (for example, behavioral) ordemographic profiles. Examples of such groups include, but are notlimited to, gender, age, income, marital status, and possibly also byinterests in different fields.

Learning functionality: Functionality used to reduce a large set ofobserved data and its classification into groups to a set of parameters,allowing to reconstruct the classification of the majority of theoriginal data and to classify similar, unlearned, data, or, to produce anew type of classification. Different relevant learning methods may beutilized to provide the learning functionality such as, but not limitedto, artificial neural networks, decision trees, k-Nearest Neighbor,Quadratic classifier, support vector machine, direct probabilityestimate using Bayesian inference, Bayesian networks, Gaussianestimators, least squares optimization methods, and other optimizationmethods.

Supervised learning: Supervised learning is learning in which theclassification of the observed data is inferred from a sample of thedata supplied by an outside source. The learning functionality searchesfor a parameter set allowing reconstruction of the classification fromthe input that later can be used for classification of new unlearneddata.

Unsupervised learning: Unsupervised learning is learning in which noclassification of observed data is given (i.e., no sample is provided),and the functionality attempts to classify the data into differentclasses under some constraints. The functionality may use a method, suchas, but not limited to, vector quantization, and various learningmethods and various optimization methods, to find a reduction of thedata into representative classes.

FIG. 1 is a schematic diagram illustrating an example of an IPTV network10 in which the present system may be provided. Specifically, FIG. 1 isspecific to video on demand or personalized advertisements for an IPTVinfrastructure. As shown by FIG. 1, an IPTV head end 20 is provided,portions of which communicate with at least one customer premises100A-100D. As is known by those having ordinary skill in the art, a headend is the physical location in an area where a video signal is receivedby a provider, stored, processed, and transmitted to local customers ofthe provider. One having ordinary skill in the art would also appreciatethat more than one head end may be provided within a network. Inaddition, a network may have more than one type of head end, such as,but not limited to, a cable head end, a satellite head end, an IPTV headend, and a terrestrial head end.

The head end 20 contains at least a video service splicer 30, anadvertisements video server 40, a management application 50, and anaccess network multiplexer 60. One having ordinary skill in the artwould appreciate that the head end 20 may have portions in addition tothose mentioned herein. In addition, while the present descriptionrefers to a management application, it should be noted that themanagement application is stored on a computer.

The video service splicer 30 receives video and audio services from asatellite dish 70. It should, however, be noted that video and audioservices may be received by devices other than a satellite dish 70, suchas, but not limited to, a cable network or any device capable ofproviding video to the head end 20.

The video service splicer 30 is capable of splicing personaladvertisements into a video service stream, as instructed by themanagement application 50 and as is further described in detailhereinbelow. The video service splicer 30 also receives advertisementsfrom the advertisements video server 40. In addition, actions of thevideo service splicer 30 are controlled by the management application50. It should be noted that, for the example of an IPTV network, thevideo packets received by the video service splicer 30 may carry anInternet protocol (IP) address and a User Datagram Protocol (UDP) portnumber. It should also be noted that the video service splicer 30 mayinstead receive video and audio services from a cable fiber.

The access network multiplexer 60 is responsible for routing videoservices to transmission units 120A-120D that are video servicesdecoders, as explained hereinbelow. The transmission units 120 are eachlocated within a customer premises 100A-100D. The access multiplexer 60is connected to both the management application 50 and the video servicesplicer 30. Specifically, the access network multiplexer 60 may perform,for example, IP and UDP port manipulation. It should be noted that theaccess network multiplexer 60 may be, for example, but not limited to,an optic multiplexer or a digital subscriber line access multiplexer(DSLAM). From a multicast point of view, as described hereinbelow,connection between the access network multiplexer 60 and a set top box110 may be a shared media connection, or any other type of connection,and there may or may not be a multicast hierarchy between the accessnetwork multiplexer 60 and the set top box 110.

The management application 50 communicates with the video servicesplicer 30, the advertisements video server 40, and the access networkmultiplexer 60. In addition, the management application 50 provides thefunctionality required to learn unsupervised profiles in televisionaudiences, as is described in detail hereinbelow. It should be notedthat in accordance with an alternative embodiment of the invention, themanagement application 50 may instead be located within a set top box110 located within the customer premises 100A-100D.

Each customer premises 100A-100D at least contains a set top box110A-110D and a transmission unit 120A-120D. While for exemplarypurposes four customer premises 100A-100D are illustrated, one havingordinary skill in the art would appreciate that additional or fewercustomer premises 100A-100D may be provided. The transmission unit 120is capable of receiving advertisement streams and video streams andforwarding the streams to an appropriate set top box 110. For exemplarypurposes, the customer premises 100A-100D is illustrated as alsocontaining a computer 130A-130D, although a computer 130 is notintricate to the invention. It should be noted that while a single settop box is shown as being located within a customer premises 100, morethan one set top box 110 may be located within the customer premises100. In addition, in accordance with an alternative embodiment of theinvention, the set top box may be a computer or any device that candecode a service. For the present example of an IPTV network, the settop box 110 receives a video service with certain TCP/IP parameters,such as, but not limited to, IP address and UDP port. It should benoted, however, that in a cable network or a satellite network, the settop box 110 may or may not receive TCP/IP parameters.

The present system enables editing of online personal video so as toprovide personalized television advertisements directed toward a viewerpresently watching the television. As is described in detail below, thepresent invention is capable of categorizing a viewer into anadvertising profile, an example of which is, but in not limited to, ademographic profile. Within a single customer premises, differenttelevision viewers may have different profiles. The different televisionviewers may view the same television during the day. Each differentviewer may be associated with a different advertising profile, such as,but not limited to a demographic profile, thus preferably receivingdifferent advertising messages. As an example, a family structure may bedescribed as having an adult male of age 45, an adult female of age 42,a male teenager of age 17, a female teenager of age 14, and a male childof age 7. It should be noted that while the present description refersto a demographic profile, other types of profiles may be provided for.

During the time that a television viewer consumes service transmissionsthe management application 50 identifies the profile of the viewer.After identifying the profile, the application 50 performs personalizedadvertisements editing for that particular profile. When there is adifferent viewer with a different advertising profile that is using thesame video decoder, the management application 50 identifies the profilethat the viewer belongs to and performs online personalization editingfor the advertisements, as described below.

In accordance with the present invention, for both supervised andunsupervised learning, the television consumers, also referred to hereinas viewers, are not individually identifying themselves to the system.As a result, the system is required to identify consumer profiles and toassociate the profiles with a specific set top box. This process isdescribed in detail hereinbelow. Prior to describing this process, ageneral process of IPTV advertisement insertion in a broadcastenvironment is described in detail.

A typical advertisement projection works as follows. During contentconsumption the access network multiplexer 60 receives a video signaland sends the video signal to the customer premises 100A-100D using anIP protocol. During an advertisement break the video transmissionscontinue to be transmitted in multicast, thus there is nopersonalization of advertisements. To instead personalizeadvertisements, the following is performed.

FIG. 2 is a flow chart 200 further illustrating the process ofpersonalizing advertisements, in accordance with one exemplaryembodiment of the invention. Any process descriptions or blocks in flowcharts should be understood as representing modules, segments, orportions of code that include one or more executable instructions forimplementing specific logical functions or steps in the process, andalternative implementations are included within the scope of theembodiment of the present invention in which functions may be executedout of order from that shown or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved, as would be understood by those reasonably skilled in the artof the present invention.

As shown by block 202, content is transmitted from the head end 20, viathe access network multiplexer 60, to the set top box 110. An example ofa protocol that may be used for the transmission is the Internet groupmanagement protocol (IGMP), which is used by IP hosts to manage theirdynamic multicast group membership. Of course, other protocols may beused.

In accordance with the present example, a subset, or complete set, ofthe customers that are connected to the access network multiplexer 60are viewing the same video and/or audio service (i.e., content). Themanagement application 50 also continuously identifies the consumers(block 204). It should be noted that the management application 50 canutilize either online processing or offline processing to determine arelationship between viewed content (e.g., videos) and viewer profiles.Regarding offline processing to identify consumers, associate theconsumers with content, and produce reports, in accordance with apredefined schedule, or when prompted to do so, the managementapplication 50 reviews zapping patterns, processes the patterns, andassociates each program viewed from a set top box 110 with a viewerprofile. Alternatively, for online processing, during an advertisingbreak, the management application 50 reviews only recent zapping eventsto determine which viewer is presently viewing content. Furtherdescription of consumer identification is provided with regard to FIG.3, FIG. 8, and FIG. 10. It should be noted that the information receivedby the management application 50 may be received from a source otherthan a set top box.

Returning to the flowchart 200 of FIG. 2, the management application 50decides which advertisements of the advertisement set each consumershould receive (block 206). It should be noted that the process ofselecting advertisements is described in detail herein.

As shown by block 208, the video splicer 30 then splices theadvertisements according to the decision of block 206. Since one havingordinary skill in the art would know how a video splicer splicesadvertisements, further description of the splicing process is notprovided herein. As shown by block 210, when the advertisement break isover, the access multiplexer 60 continues to transmit the multicasttransmission as it did prior to the advertisement break.

It should be noted that if during an advertisement break the consumerchanges the consumed video service, the management application 50supplies the new service in the same manner. Specifically, if theservice transmits content, the management application 50 continues totransmit the content with the multicast protocol. In addition, if thereis an advertisement break, the management application 50 may splicedifferent advertisements.

As previously mentioned, the present system provides a consumer specificadvertising environment. This environment is provided in part by theproviding of online multilayer multicast groups between the accessnetwork multiplexer 60 and the set top boxes 110A-110D. The accessnetwork multiplexer 60 transmits broadcast transmissions with multicastprotocol to a subset A of the set that is connected to the accessnetwork multiplexer 60. In the subset A there are different subsets B ofconsumers watching the same channel at a given moment that are connectedto the access network multiplexer 60. Within a single subset B,consumers are associated by their profile for advertising. When there isan advertisement break, the access network multiplexer 60 istransmitting an additional layer of multicast, where each differentsubset Bi is receiving different advertisements according to theadvertisement profile associated with subset Bi. Finally, when theadvertisement break is over, subset A consumers continue to watch thesame service.

While the abovementioned provides an example of an IPTV network 10, adifferent infrastructure in which the present system and method may beprovided includes a cable network 400. FIG. 4 is a schematic diagramillustrating an example of a cable network 10 in which the presentsystem may be provided. While there are similarities between the IPTVnetwork of FIG. 1 and the cable network 400 of FIG. 4, there are alsodifferences, which are described herein.

Referring the FIG. 4, a cable head end 410 of the cable network 400 isvery similar to the IPTV head end 20 of the IPTV network 10. It shouldbe noted, however, that instead of an access network multiplexer 60, thecable network 400 contains an RF interface 410, which may be, forexample, but not limited to, a quadrature amplitude modulation (QAM)modulator and/or a radio frequency (RF) combiner. The cable network 400provides for individual coaxial cables to provide communicationcapability from the cable head end 410 to individual set top boxes430A-430H, where each set top box is located within a customer premises(CP) 440A-440H, such as, but not limited to, a home.

Another example of a network in which the present system and method maybe provided is a satellite network. FIG. 5 is a schematic diagramillustrating an example of a satellite network 500 in which the presentsystem may be provided. The satellite network 500 contains a satellitehead end 510 that is similar to the IPTV head end 20, except that thesatellite head end 510 contains an RF modulation interface 520. The RFmodulation interface 520 is capable of formatting and amplifyingreceived data for transmission to a satellite 550.

The satellite 550 is capable of reflecting received data to satellitedishes 560A-560N capable of receiving data signals from the satellite550. Each satellite dish 560A-560N is associated with a customerpremises 570A-570N, such as, for example, a home. In addition, eachcustomer premises 570A-570N has at least one set top box 580A-580Nlocated therein.

Still a further example of a network in which the present system andmethod may be provided is a terrestrial network. FIG. 6 is a schematicdiagram illustrating an example of a terrestrial network 600 in whichthe present system may be provided. The terrestrial network 600 containsa terrestrial head end 610 that is similar to the IPTV head end 20,except that the terrestrial head end 610 contains an RF modulationinterface 620. The RF modulation interface 620 is capable of formattingand amplifying received data for transmission to a radio tower 650.

The radio tower 650 is capable of reflecting received data to antennas660A-660N capable of receiving data signals from the radio tower 650.Each antenna 660A-660N is associated with a customer premises 670A-670N,such as, for example, a home. In addition, each customer premises670A-670N has at least one set top box 680A-680N located therein.

In accordance with the present invention, the management application 50identifies the consumer profiles that are using video/audio decoders(i.e., set top boxes) in the network 10. For exemplary purposes theexample of a single household having two television sets is provided.Each television is connected to a different set top box. A firsttelevision A is located in the living room and a second television Bresides in a room for children.

In accordance with the present example, there are three consumerdemographic profiles in the household, namely:

1. Profile 1: Male adult of age 37

2. Profile 2: Female adult of age 34

3. Profile 3: Male child of age 8 and male child of age 10

The consumer profiles are associated with the television sets asfollows:

Television A—profiles 1, 2, and 3 (all the household residents areconsuming content via television A).

Television B—profile 3 (only the children are using television B)

The process of identifying and associating consumer profiles to set topboxes may be separated in accordance with whether a supervised learningprocess is used or an unsupervised learning process. These two scenariosare described separately hereinbelow, although it will be noted thatcertain steps in the processes are similar.

In accordance with the present example, for both the supervised andunsupervised scenarios, service providers have no knowledge of theprofiles existing in the household, the location of the television setsin the household, and/or associations between the television sets andthe profiles. Instead, the management application 50 identifies andassociates the consumer profiles with the set top boxes.

Supervised Learning

Reference is now made to the flowchart 300 of FIG. 3. The flowchart 300of FIG. 3 further illustrates the process of identifying and associatingconsumer profiles to set top boxes 100A-100D within a supervisedlearning scenario. As shown by block 302, to acquire a sample, theservice provider may send a questionnaire to the consumers.Alternatively, the service provider may use any other method ofobtaining data, such as, but not limited to, having a telephoneconversation. The questionnaire may refer to the household demographicdetails, video decoders (i.e., set top boxes), and association betweenthe usage of each person in the household and the video decoders in thehousehold. As shown by block 304, consumers fill out the questionnaireand return the same to the service provider. With the return of theconsumer questionnaire, it is known which individual profiles and settop boxes are associated with a household.

As shown by block 306, set top boxes 110 in the network 10 record all ofthe zapping events that the consumers are creating. In accordance withthe present description, and as is known by those having ordinary skillin the art, zapping refers to the switching from the current service toanother service via use of, for example, but not limited to, a remotecontrol or pushing buttons on the video decoder. It should be noted thatthis use of remote controls is provided for exemplary purposes. Instead,zapping may be associated with switching initiated by voice commands, oreven consumer motions without pressing buttons.

As shown by block 308, the set top boxes 110 send the zapping events tothe management application 50. The management application 50 thenassociates behavior of consumers and their zapping pattern with thehouseholds that either did not return the questionnaire or that neverreceived a questionnaire (block 310).

The association process is a learning process, also referred to as abusiness process, which is the process of passive platform audiencelearning and identification, and targeted platform rating calculationand analysis. The learning process is divided into multiple steps,including data collection, modeling, learning, identification, analysis,and post processing. FIG. 7 is a flow chart 700 further illustrating thesteps of the supervised learning process.

Data Collection

Referring to FIG. 7 and the step of data collection, in order to performaudience learning, audience identification, and targeted ratingcalculation, certain external data is collected and converted into aninternal format (block 702). This external data includes the zappinglog, the broadcast schedule, set top box information, and sampleinformation. The zapping log includes the actions that were performed bythe set top box user using a remote control, directly using set top boxcontrol buttons, or performing a different action that caused changingfrom a current service to another service, or from a current state ofthe set top box to another state of the set top box (e.g., switching onor off). The broadcast schedule (or AsRun) includes, for example, atimetable for the platform channels/programs during the zappinggathering period. It should be noted that the broadcast schedule mayalso include a schedule of video on demand programs, or a schedule ofany interactive service. The broadcast schedule should be reconciledwith the zapping log in terms of times and channels identifications. Theset top box information includes the relevant information, for every settop box for which zapping was collected, (e.g., unique set top boxidentifier and address). The set top box information should also bereconciled with the zapping log in terms of set top box identifications.

Modeling

Modeling is the process of converting the zapping log into differentdata models that could be used by different learning and identificationalgorithms, thereby providing a set top box signature (block 704). Inaccordance with the present system and method, at least the followingdata models are recognized. A first data model that is recognized is aset top box viewing signature. Regarding the set top box viewingsignature, for each set top box, the list of “watched” programs could becreated based on the zapping log and reconciled broadcast schedule. Foreach watched program, an aggregated watching percentage is given. As anexample, STB1 watched program number 56, 30%, means that STB1 watched30% of the program, on overall (including leaving the program andgetting back to it), during the whole time of broadcast of programnumber 56. A second data model that is recognized is a set top box timesignature. The set top box time signature is, for each set top box, thelist of percentages of viewing every channel during the specific timeaggregated for weekdays. As an example, set top box 1 (STB1) watched CNNon Sundays between 12:00 and 13:00, 25%, means that during the learningperiod, the average time that this particular set top box watched CNNbetween 12:00 and 13:00 on Sundays was fifteen minutes.

A third data model that is recognized is a set top box zapping frequencysignature. Specifically, every profile does zapping with differentfrequencies. Calculating zapping frequencies of every set top box duringthe predefined time periods provides a Zapping Frequency Signature.

Unfortunately, the zapping log is not noise free. Most of the viewersuse the remote control in the same fashion, but there is a smallminority of users that would use the remote control differently. Thisaffects the general zapping frequency, surfing periods (when the viewerchanges the channels with high frequency in order to find somethinginteresting), etc. In order to handle these irregular behaviors, a setof data filters should be applied to the zapping log prior to modeling.

Learning

For supervised learning, learning is a process in which the set top boxsignatures (viewing, time, and/or zapping frequency), created at thedata modeling stage, are used with a list of set top boxes and profilesto provide an Association Rule (block 706). The Association Ruleprovides knowledge of how to associate a list of profiles within anetwork to a set top box within the network. The Association Rule isdetermined due to not having received filled out questionnaires from allparties and wanting to determine unknown relationships between profilesand set top boxes.

It should be noted that during supervised learning, it is not determinedwhich profiles are associated with which set top boxes. Instead, asmentioned above, an Association Rule is determined to provide knowledgeof how to associate a list of profiles to each set top box.

As mentioned above, during supervised learning there is an associationof set top box signatures (e.g., viewing) for each set top box in thedata model to a predefined list of profiles, based on a sample, forfurther use in the identification functionality. A sample is a partiallist of set top boxes for which both the zapping log and the list ofprofiles associated with each set top box are provided. The sample maybe provided by an operator of the set top box collection. Predefinedprofiles can be, for example, but not limited to, demographic profilesthat define gender, age, marital status, income level, or psychographic(behavioral) profiles.

The Association Rule can be applied to any set top box in the samenetwork, as is performed during identification. An example of a processthat may be used to derive the Association Rule follows. The managementapplication 50 contains knowledge of the current consumed service for aspecific decoder, the profiles (demographic, or behavioral) associatedwith a specific decoder and household, and previously consumed contentfor a specific decoder. In accordance with the present invention, themanagement application 50 uses inference functionality to determine thecurrent viewer/listener profile. The inference functionality defines thecurrent profile(s) that is/are consuming the service.

An example of inference functionality follows, where the learningfunctionality uses Bayes rule. At this point, the management application50 contains knowledge of the current consumed service for a specificdecoder (set top box). In addition, the management application 50 knowsthe demographic profiles associated with a specific decoder andhousehold. Further, the management application 50 knows previouslyconsumed content for a specific decoder, specifically, the short-termhistory. The management application 50 may then use the inferencefunctionality to determine the current viewer/listener profile.

An example for the inference functionality using Bayes rule is providedhereinafter. In the learning algorithm, data collection determines thedistribution of the consumed content as a function of the classificationof the viewers/listeners at the household. In addition, using the datain conjunction with the Bayes rule, the probability that the householdcontains a viewer/listener belonging to each demographic profile isestimated. Data utilized to perform this process includes probabilitiesof each consumed service for households containing each of thedemographic profiles, as well as probabilities of each consumed servicefor households not containing each of the demographic profiles.

Bayes rule reads as shown by equation one below.

P(C|F1 . . . Fn)=P(F1 . . . Fn|C)*P(C)/(P(F1 . . . Fn|C)*P(C)+P(F1 . . .Fn|˜C)*P(˜C))   (Eq. 1)

In equation one, P (F1 . . . Fn|C) is the probability that a householdcontaining a certain profile (C) consumes the list of services F1 . . .Fn and does not consume any other service. In addition, P (F1 . . .Fn|˜C) is the probability that a household not containing a certainprofile (C) consumes the list of services F1 . . . Fn and does notconsume any other service. Further, P(C) is the probability that ahousehold contains profile C, regardless of the services consumed andP(˜C) is the probability that a household does not contain profile C,regardless of the services consumed.

P(F1 . . . Fn|C) and P(F1 . . . Fn|˜C) may be approximated as theproducts P(F1|C)* . . . *P(Fn|C) and P(F1|C)* . . . *P(Fn|˜C)respectively, which may be calculated directly from the statisticsgathered for the sample population. Better approximations may beobtained by considering correlations between services and betweenprofiles in a household. From the above calculation, the result is theprobability, P(C|F1 . . . Fn) that a household contains profile C, giventhe list of the household consumed services. The collection of allvalues P(C|F1 . . . Fn), calculated for the whole of sample set topboxes represents the Association Rule used for the identification step,applied to each set top box in the network, which was not part of thesample set top boxes. In addition, from this calculation, the result isthe probability that a certain individual viewer from a specific profileused the set top box.

In accordance with an alternative embodiment of the invention, a samplemay be provided, and post processing may be provided to associatecontent with profiles. Specifically, a sample may include at least oneprofile, a set top box associated with the profile, and zappinginformation associated with the set top box. Post processing may then beperformed on the sample to determine which content (e.g., advertisement)is most appropriate for providing to the consumer associated with theprofile. As a result, in accordance with this alternative embodiment ofthe invention, the learning process is not required.

Identification

Identification is a process of recognition of a list of profiles asbeing associated with a certain set top box (STB), based on the learningresults. Every set top box in the network should be assigned with atleast one profile (demographic, or behavioral). It is conceivable toassume that in front of a set top box, mostly there is more than oneactive profile and there are cases where the same profile should beassociated a few times to the same set top box. Thus, for each set topbox there should be assigned one or more profiles. For example, a youngcouple (male & female) between the ages of 20-30 that are livingtogether would produce 2 profiles, specifically, one for the female andthe other for the male. As another example, if a specific household hastwo boys of the ages seven and fourteen, the boys may both be assignedto an appropriate set top box as the same profile, “Male 6-18.”

To determine the list of profiles associated with a set top box, theAssociation Rule is mathematically applied to the list of set top boxsignatures (block 708).

Analysis

Analysis is the process of breaking down and studying the results oflearning and identification in order to estimate possible identificationerrors, provide a set of different factors and amendments for postprocessing, association of definition of profiles by signatures to athird party definition, and any other functionality resulting fromstudying the learning and identification results.

The identification error analysis may be performed via mathematicalmodeling means and/or via simulation (empirical) means. For example,estimation of expected identification errors may be achieved viaapplying the learned results to a part of the sample and simulating theidentification results.

Post Processing

Post Processing is the process of calculating the data required forpresentation to potential customers, such as, targeted rating. Postprocessing also includes reporting and analyzing based on results ofidentification. The aforementioned list of results is obtained via postprocessing functionality described hereafter. Such functionality may beprovided by, for example, algorithms. Post processing may be utilized tocalculate the following data, although post processing calculation isnot intended to be limited to calculating only this data; rather, bypost processing any calculation done with the use of the resultsobtained from the learner and/or identifier is referred to as a postprocessed calculation/algorithm.

Targeted Rating

Targeted rating may include a percentage of viewers of a specificprofile that consumed content, a percentage of viewers of a specificprofile that consumed content from a channel during a specified timeperiod, or a percentage of viewers of a specific profile that consumedcontent provided within the network during a specified time period. Itshould be noted that the term “consumed” is used herein instead of theterm “watched” since content consumed by a viewer profile not onlyincludes content that is watched by a viewer profile, but also contentthat is not watched, but that is provided to a set top box associatedwith a viewer profile, such as, but not limited to, audio content.

Herein, content may be, for example, but not limited to, a program. Itshould also be noted, that for exemplary purposes, the followingprovides the example of consuming content comprising watching content,however, one having ordinary skill in the art will appreciate thatconsuming of content need not be limited to watching content, butinstead may include other functions such as, but not limited to,listening to content received from a channel.

More specifically, targeted rating functionality calculates the targetedrating of a content per profile (e.g., using optimization algorithms,see examples herein below) of the learned and identified data, or of anyindependent data (e.g., obtained from the sample) as long as the datacontains information about the set top box signatures (e.g., viewingsignatures) and the profile(s) associated to each set top box in theinput. As an example, the targeted rating functionality may be used ondata resulting from the supervised learning functionality, unsupervisedlearning functionality, or independent data. It should be noted thatherein set top box signatures includes one or more set top boxsignature.

Targeted rating may include targeted program rating, targeted channelrating, and targeted time interval rating. Targeted program rating is apercentage of viewers of a specific profile that watched a program. Inaddition, targeted channel rating is a percentage of viewers of aspecific profile that watched a channel during a specified time period.Further, targeted time interval rating is a percentage of viewers of aspecific profile that watched content broadcasted within the networkduring a specified time period.

Targeted rating determination may be provided in general or regionally.Specifically, a regional targeted rating is a targeted rating for oneregion, where a region may be limited to, for example, a specificgeographical location. Alternatively, general targeted rating is atargeted rating for an entire network, or a part of a network, which isregion independent (for example, it may include one or several combinedregions).

FIG. 11 is a flow chart 950 illustrating the process of determining atargeted rating. As shown by block 952, data representing relationshipsbetween viewer profiles and set top boxes is received, or obtained.Specifically, data showing which profiles are associated with which settop boxes is received. The data may either be obtained after performinglearning and identification processes, as described herein, or receivedfrom an external source.

As shown by block 954, set top box signatures are also received, orobtained, for use in determining targeted rating. Such set top boxsignatures may be, for example, but not limited to, viewing signatures,time signatures, high-resolution time signatures, or zapping frequencysignatures. It should be noted that other set top box signatures mayalso be provided for by the present system and method.

The type of set top box signature used in targeted rating determinationdictates which kind of targeted rating will result. As an example, whenviewing set top box signatures are used, targeted program ratingresults. In addition, when time set top box signatures are used,targeted time interval rating, or targeted channel per a time intervalrating, results.

As shown by block 956, a first input set is derived showing theprobability that each profile is associated with each set top box. Itshould be noted that the first input set is derived by performing thelearning and identification processes, or is received from an externalsource. A second input set is derived containing data of set top boxsignatures (block 958). It should be noted that the second input set isderived by performing the modeling functionality on thecollected/received zapping log. As an example, for a viewing signature,the zapping log may contain information showing whether a certain settop box consumed certain content (for example, a program), or not. Forpurposes of deriving the desired output set, namely, the set of targetedratings, it is assumed that the data of the set top box signatures canbe approximated by certain operations involving data associatingprofiles to set top boxes and targeted rating.

As is shown by block 960, certain operations are applied on the set ofdata associating profiles to set top boxes and the set of datacontaining set top box signatures (the input sets), resulting in atargeted rating (the output set). Different forms of data sets anddifferent operations may be used to provide the targeted rating. As anexample, matrices may be used to derive the targeted rating, where it isassumed that multiplying a matrix A (matrix A shows the probability thateach profile is associated with each set top box) by a matrix B (matrixB is the targeted rating) would result in a matrix C (matrix C is theset top box signature data). Of course, other examples of operations maybe used. Two examples of operations that may be used to determinetargeted rating are provided below.

If the network covers more than one region and information on theregions in which the different set-top boxes in the network reside isavailable, a regional targeted rating (RTR) may be calculated usingsimilar methods to those described below. In addition, regional targetedrating of high-resolution time steps, where a time step may be forexample, but not limited to, per each thirty seconds, may be calculatedfor each specific channel and profile.

Input to the regional targeted rating functionality includes the regionin which each of the set top boxes is stationed, the set top boxsignatures for set top boxes within that region, such as, but notlimited to, viewing signatures, time signatures, zapping frequencysignatures, and high-resolution time signatures, and lists of profilesassociated with each of the set top boxes within the region, from anysource. It should be noted that a region may have one or more set topboxes therein. In addition, a set top box may be located within morethan one region.

The output of the regional targeted rating functionality is thepercentage of viewers of each predefined profile, within a specificregion, that watched each of the contents, for example, programs, in thecase of when viewing signatures are the input, or of each channel at acertain time interval, in the case of when time signatures are theinput.

Two examples of methods that may be used to calculate targeted ratingare provided herein below. It should be noted that the present inventionis not intended to be limited to the following examples, but insteadthat the following examples are merely provided for exemplary purposesand are not intended to limit the present invention.

EXAMPLE 1

An example of a method to calculate targeted rating, given a list of settop boxes with viewing signatures and profile(s) associated to each settop box, can be given via the use of a linear regression optimizationalgorithm. In calculating the targeted rating, it is assumed thatmultiplying the set of parameters representing the association ofprofile(s) to set top boxes (let us call it A) by the aggregation oftargeted rating values of each of the profiles per each program watchedby at least a portion of the set top boxes of the network for which thezapping log contains records of set top box zapping signatures (the yetunknown and desired output, let us call it B) corresponds to theparameters representing the aggregation of the set top box viewingsignatures (part of the input, let us call it C).

For purposes of this example, it is assumed that the sets of parametersA, B, and C are utilized to provide matrices A, B, and C. A minimizationalgorithm on the squared norm of the matrix (AB−C) may then be performed(a random initial guess is provided to the algorithm for the values ofB). In other words, given A and C, the output of applying this algorithmis the set of probabilities, B, representing the probability of eachprofile to watch each of the programs broadcasted to the collection ofset top boxes. An example table for such an output is presented belowafter example 2 is described.

EXAMPLE 2

As a second example of a method to calculate targeted rating, thematrices A, B and C are as in example one, where A is a matrixcontaining list(s) of demographic, or psychographic, profiles that is(are) associated to each set top box (of the whole network, a part ofthe network, a specific region within the network, or statisticallyrepresenting any of those), which is obtained from any source, eithervia local identification, via receiving an external sample, or viaanother means.

The matrix C is a matrix that contains, per each of the set top boxes, alist of set top box signatures per a channel, or a program. Examples offorms of set top box signatures include, but are not limited to, viewingsignatures, time signatures, high-resolution time signatures or anyother form of set top box signatures that associates knowledge of someviewing habits in a certain period per each set top box. The unknown setof probabilities per each of the pre-defined profiles, represented bythe matrix B, may then be obtained by the use of solving equation two(Eq. 2):

B≅A⁺C   (Eq. 2)

In equation two, A⁺ is the pseudo-inverse of the matrix A, which isunique in mathematical terms, thereby insuring that the targeted ratingmatrix B computed in equation two is well-defined. An example of apseudo-inverse is the Moore-Penrose pseudo-inverse. Calculating A⁺ andmultiplying it by the matrix C gives a good approximation to the matrixB, of the targeted ratings.

The algorithm of equation two is extremely accurate and allows for theperformance of targeted rating calculations on very large amounts ofdata (more than an order of millions of entries) in an extremely shortcomputing time. Specifically, when performing linear regression, forexample, in accordance with one exemplary embodiment of the invention,there is a requirement that for each targeted rating element a separateoptimization process is performed, thereby requiring a long computationperiod. A targeted rating element may be, for example, but not limitedto, a program, a time interval, or a channel.

Alternatively, in accordance with another exemplary embodiment of theinvention, if a pseudo-inverse is utilized, performing a matrixmultiplication, instead of multiple optimization processes, is very fastand is performed for all the targeted rating elements at once, even ifthere are tens of thousands of targeted rating elements.

An Example of Data and Targeted Rating Output Follows.

-   If the pre-defined profiles are:

1. Female of age 30-55 with high income.

2. Male of age 18-40 with average income.

3. Male child of age 6-16 with low income.

4. Female child of age 6-16 with average income.

And the list of programs (as specified in the viewing signatures) is:

1. Saturday night live.

2. Lost.

3. 24.

-   Then the targeted rating (TR) output would be the following table:

Rating (in % Program ID Profile ID of each profile) 1 1  0.5% 2   1% 30.01% 4 0.04% 2 1   3% 2 1.54% 3 0.01% 4 0 3 1 2.31% 2 2.11% 3 0 4 0

Content to Profile Assignment

In addition to a targeted rating of a content (for example, program) perprofile, a content to viewer profile assignment (C2P) may be determinedso as to provide an identification of what content is being consumed bywhat viewer profile. For exemplary purposes, it should be noted thatcontent may be, for example, but not limited to, a program.Specifically, a content to profile assignment is beneficial to calculatefor those set top boxes within the network to which more than one viewerprofile has been associated so as to enable determination of whichviewer profile of the list of viewer profiles associated with the settop box actually consumed a specific content.

The present description provides examples of how to determine content toprofile assignment for illustration purposes only and is not intended tolimit the invention to these examples. Specifically, as previously shownabove, the learning and identification processes result in anassociation of at least one viewer profile to a set top box for which aset top box signature is provided. In addition, determining a targetedrating results in a percentage of viewer profiles that consumed content,wherein the content may be, for example, a program. Having the learningand identification process result and the targeted rating result, it isbeneficial to determine what content is being consumed by what viewerprofile. Similarly an assignment of any content in a specific time slotto a specific viewer profile in the household that consumed this contentmay be made.

As previously mentioned, obtaining a content to profile assignmentinvolves determining for each content that was consumed by a certain settop box, which is the specific viewer profile, or viewer profiles, ofthe profiles associated to this set top box, that consumed the content.Alternatively, if more than one viewer profile has a probability ofconsuming the content, a list of viewer profiles associated to this settop box that consumed the content with certain probabilities may becalculated. This calculation can be done, for example, via use ofalgorithms applying algebraic manipulations to the sets of parametersrepresenting the aggregation of viewing (or other) set top boxsignatures (denoted by C, as above), the parameters representing theassociation of viewer profile(s) to set top boxes (denoted by A, asabove), and parameters representing targeted rating values (denoted byB, as above).

Once the association of profile(s) lists to set top boxes is obtained(the input set A), either by performing a supervised/unsupervisedlearning and identification process, or obtained from an externalsource, it is possible to utilize statistical, algebraic, or othermethods on input set A, together with the set top box signatures of theset top boxes (input set C), and the set of targeted ratings B, to inferthe specific viewer profile that watched each specific content via anygiven set top box. The targeted ratings may be obtained either by one ofthe methods described above, or by other methods, or received from anexternal source.

For exemplary purposes, FIG. 12 is a flow chart 1000 illustrating aprocess for obtaining a content to viewer profile assignment. As shownby block 1002, at least one set top box signature is received, whereineach received set top box signature provides an association of contentconsumed via an associated set top box. Such set top box signatures maybe, for example, but not limited to, viewing signatures, timesignatures, or high-resolution time signatures. It should be noted thatother set top box signatures may also be provided for by the presentsystem and method.

Data representing relationships between viewer profiles and set topboxes is received (block 1004), wherein the data may either be obtainedafter performing learning and identification processes, as describedherein, or received from an external source. Such data includes anassociation between at least one viewer profile and at least one set topbox. Preferably, the data is provided as a list of viewer profiles thatare associated with a specific set top box.

Including the functionality of block 1002 and block 1004, the result isan association of content consumed via an associated specific set topbox and a list of at least one viewer profile associated with thespecific set top box. These results may be obtained for one or more settop boxes within the network, wherein the content to profile assignmentmay be determined for each such set top box.

As shown by block 1006, operations are performed on the set top boxsignatures and the association of viewer profiles to set top boxes toobtain content to profile assignment. It should be noted that manydifferent examples of operations may be provided. The following providestwo examples of operations that may be used to obtain content to profileassignment.

EXAMPLE 1

Using the targeted rating of viewer profiles, or other data describingthe viewing habits of each viewer profile associated with the network ofset top boxes, or associated with a part of the network of set topboxes; and further having the association of viewer profile lists to theset top boxes, as obtained from supervised or unsupervised learning andidentification methods, or by an algorithm, or obtained from an externalsource; then the probabilities for any viewer profile to watch givencontent are deduced using statistical analysis or any algebraic, orother method. Assuming, for illustration purposes, that in example 1content is a program, let us denote by P_(j)(f) the probability that aspecific program, denoted by j, was consumed via a certain set top box,denoted as STB_(i), within the network, by a certain viewer profile, f,identified to be in the list of profiles using this specific STB_(i).Then, for example, P_(j)(f) may be calculated as:

${{P_{j}(f)} = \frac{{TR}_{j}(f)}{\sum\limits_{f^{\prime}}{{TR}_{j}( f^{\prime} )}}},$

where TR_(j)(f) denotes the targeted rating of the specific program j(where program j is a program for which we are determining viewerprofile(s) that watched program j) for profile f, and f′ range over theprofile list, of profile(s) that had been associated with this STB_(i),via which program j had been consumed.

The association of the list of profiles to this specific STB_(i) may beobtained by learning and identification processes, or any other method,or received from an external source (or, alternatively, assuming allprofiles are associated with this STB_(i) with some probability if noother information is given). In the case that association of the profilef to the STB_(i), via which program j had been consumed, is given with acertain probability, it is possible to get the probability that theprofile f watched the program j in the STB_(i) in a more accurate way,for example by multiplying each targeted rating by the appropriateprobability.

Let us note that the accuracy of P_(j)(f) gets higher if the watchingcorrelations between the different profiles, f′, associated with theSTB_(i) that watched program j, is as low as possible. It should benoted that zero correlations means that only one profile, f out of thelist of profiles, f′, which are associated with the STB_(i), wouldusually watch the program j.

Applying a maximization on all probabilities P_(j)(f), obtained for eachof the viewer profiles, f, that are associated with the STB_(i), wouldthen result in obtaining the content to viewer profile assignment, wherethe profile having the highest probability as determined, is the viewerprofile that watched the program. It should be noted that if more thanone profile has the same high probability as determined, then bothviewer profiles watched the program.

EXAMPLE 2

While example 1 usually provides accurate results, it might take a longcomputation time, in case it needs to be computed for each content, forexample for each program, and each set top box that consumed thiscontent (for example, watched the program), separately. Moreover,example 1 depends upon the input set B of targeted ratings.

An alternative example, as shown by example 2, would just applyalgebraic manipulations on the sets A and C, described above, where setA is either obtained from the processes of learning and identification,or is received from an external source. It should be noted that inaccordance with the second example, there is no requirement forcalculating or receiving the targeted rating (set B above).

Assuming for illustration purposes of this example that the sets A and Care matrices and that a content is a program, the following method ofC2P may be considered. For each program j, that had been watched viaSTB_(i), P_(j)(f), the probability that a profile f (of a list ofprofiles associated with STB_(i)) is the one who watched program j, isobtained via algebraic manipulations on the matrices A and C andstatistical inference:

P_(j)(f) is calculated as the number of set top boxes that wereassociated with profile f via which program j had been watched, dividedby the number of set top boxes via which program j had been watched.Then, the quantity P_(ij)(f) is obtained as the probability that STB_(i)contains profile f and via it program j had been consumed. Then, as inexample 1, a maximization on all probabilities P_(ij)(f) may be appliedfor each of the viewer profiles, f, that are associated with theSTB_(i), thereby resulting in obtaining the content to viewer profileassignment, where the profile having the highest probability asdetermined, is the viewer profile that watched the program. Again, itshould be noted that if more than one profile has the same highprobability as determined, then both viewer profiles watched theprogram.

It should be noted that other methods may be used to associate contentto viewer profiles and such methods are intended to be included withinthe present description.

Total Viewership

Further, a total viewership may be calculated (using, e.g., aprogram—time slot map and applying to it a calculation algorithm whichutilizes data obtained in the previous steps described here), which isthe calculation of total aggregated viewing activities for each of thepre-defined profiles (these may be demographic or behavioral), during atwenty-four hour period for each week day.

For example, having the association of profile(s) with each set top box,represented as a set of probabilities (either obtained as an output fromthe learning and identification steps or given from an outside source),and given the set top box signatures (e.g., as an output from the datamodeling stage), given in addition the broadcasting time table (showingfor a pre-defined period of time at which time and date and for whichduration each program was broadcasted), the following calculation isperformed.

The data is aggregated and modulated in such a form that for each day ofthe week (24 hours) it is calculated how many of each of the pre-definedprofiles watched any content during each of the pre-defined timeintervals. For example, if the period decided upon is three months andthere were 12 Sundays during this period, the 24 hour period is dividedto intervals of 15 minutes and for each such interval it is calculated(using the set top box signatures and the data mentioned above) how manytimes each of the pre-defined profiles watched any content during eachof the 15 minute intervals aggregated for all 12 Sundays on a 24 hoursspan. Then this information is presented in a graph showing the viewingpeaks during a 24 hour Sunday divided to 15-minute slots per eachprofile. This is done for each day of the week (aggregated to the numberof time this weekday appeared during the three months period).

In addition to the abovementioned, a targeted rating distribution may bedetermined, which involves, for every channel, for every profile,calculating the rating of the channel for every brief period of time(e.g., thirty seconds), for every minimally defined region. Further, aviewership flow may be determined, which includes, for every channel,calculating the number (or percentage) of viewers of every profile thatjoin and leave the channel during every short period of time (e.g.,thirty seconds), for every minimally defined region. Still further,creative reports may be determined such as, for example, during anadvertisement break, for each second, calculating the rating andviewership flow. All the aforementioned are merely examples of the postprocessing possibilities.

In the supervised case, with the knowledge gained by the functionalityof block 310, for any households that did not fill out thequestionnaire, the management application 50 uses identificationfunctionality to associate the rest of the set top boxes 110 with theprofiles that are using the set top boxes 110 (block 312). An example ofthe functionality, which is used as a basis for such an identificationfunctionality, is provided herein below. It should be noted thatdifferent relevant learning methods may be used to perform theidentification functionality. Examples of such learning methods mayinclude the use of any one of the following, or other learning methods:Bayesian learning, various statistical methods, artificial neuralnetworks; decision trees; k-nearest neighbor; quadratic classifier;support vector machine; various optimization methods, and directcalculation of probabilities. Of course, other learning methods may beused and are intended to be included within the present description.

Viewership Flow

Using the identified profiles data and high-resolution time signatures,a viewership flow may be calculated. It should be noted that ahigh-resolution time signature is a representation of which channel eachset top box watched during each time step of a specific time interval,such as, but not limited to, thirty seconds. In addition, a viewershipflow is the number of viewers of each profile that left or joinedwatching a specific channel during each time interval (e.g., 30seconds), during a day or any pre-defined time interval. Viewership flowmay be calculated using, for example, but not limited to, ahigh-resolution regional targeted rating, in addition to the data ofsignatures and lists of profiles associated with each set top box.

Calculation of viewership flow is performed in a few steps. It should benoted that the following is an example of steps that may be used tocalculate viewership flow, however, the following example is not theonly way to calculate viewership flow and this example is not intendedto be limiting. As a first step, the high-resolution regional targetedrating is calculated. Calculation of the high-resolution regionaltargeted rating provides, per each channel and per each viewer profile,the percentage of viewers of this viewer profile that watched thischannel per each time interval (for example, 30 seconds) during each dayof a specified period. Such targeted rating may be calculated, forexample, but not limited to, using a method similar to the methoddescribed in the targeted rating section of the present description,where the word program is replaced by channel per time interval.

To calculate viewership flow, the differences between the targetedratings of same viewer profiles, per different time intervals, may becalculated to record the change in number of viewers of each profilebetween successive time intervals. Moreover, using for example, but notlimited to, the method described above as content to profile assignment,the number of viewers that left or joined the viewers of each channel ateach time interval may be calculated. To summarize: the viewership flowapplication may contain various descriptions of changes in viewers perchannel per time interval. For Examples of the abovementioned include,but are not limited to, targeted rating and the changes in targetedrating per time interval, and number of viewers of each profile who leftor joined the viewers of the channel at each time interval.

Unsupervised Learning

Reference is now made to the flowchart 800 of FIG. 8. The flowchart 800of FIG. 8 further illustrates the process of identifying and associatingconsumer profiles to set top boxes 100A-100D within an unsupervisedlearning scenario. It should be noted, that unlike with supervisedlearning, with unsupervised learning no sample relating viewer profilesto set top boxes is provided. Moreover, the type of viewer profilesmight be unknown at the stage of the learning. As a result, the viewerprofiles must be determined. It should be noted that different types ofviewer profiles may exist, including, but not limited to, demographicand psychographic types of viewer profiles. For example, for thepsychographic type of viewer profile, the profile may contain multiplecategories, such as, but not limited to, watching habits, purchasingbehavior, social class, lifestyle, opinions, and values.

To determine viewer profiles one of many methods may be used, such as,but not limited to, using clustering algorithms to find commondenominators within a population in association with viewing habits ofthe population. An example of a method that may be used for profilelearning and determination is provided below.

As shown by block 802, set top boxes 110 in the network 10 record allzapping events created by the consumers. The set top boxes 110 send thezapping events to the management application 50 (block 804). It shouldbe noted that the zapping events include an identification of the settop box from which the zapping events were derived. The managementapplication 50 then associates behavior of consumers and their zappingpatterns (block 806).

FIG. 9 is a block diagram further illustrating functionality of themanagement application 50 as blocks of logic. As shown by FIG. 9, themanagement application 50 contains modeling logic 902, learning logic904, identification logic 906, analyzer logic 908, profilesdetermination logic 910, post processor logic 912, and reporting logic914. The logic of the management application 50 is further described indetail with regard to the logical flow diagram of FIG. 10.

FIG. 10 is a detailed logical flow diagram illustrating a sequence ofevents performed during unsupervised learning. The zapping log and thebroadcast schedule (arrows 1) are the inputs to modeling functionalityof the management application 50, the output of which is a collection ofset top box signatures (arrow 2), wherein the collection of set top boxsignatures includes a signature for each set top box in the network. Theset top box signatures may be one of multiple classes of signatures,wherein the classes of signatures include viewing signatures, timesignatures, and zapping frequency signatures. Each set top box in thenetwork may have multiple signatures, wherein the signatures for asingle set top box are selected from the classes of signatures. In fact,for example, a single set top box may even have one or more of eachclass of signature. Each such set top box also has a uniqueidentification (ID). Viewing signatures are vectors of all the programswatched during a specified period by each of the set top boxes in thenetwork.

The set top box signatures are the input used by learning functionality(arrow 3) of the management application 50. The learning functionalityclusters profiles into groups of profiles that are yet unresolved. Itshould be noted that an unresolved profile is a profile for which a typeis not yet known. Specifically, the learning functionally, which isfurther described in detail below under the section entitled “learning”,is capable of using the set top box signatures and determiningrelationships between profiles to derive clusters of profiles, where atype of a profile is not yet known. As an example, an optimizationalgorithm may be used to cluster the profiles into groups of unresolvedprofiles, an example of which is illustrated below. The learning stepmay be performed a few times, to determine the number of existingprofile groups available for identification from viewing signature data.This may be done by, for example, but not limited to, throwing out,after each iteration, the profile groups that have similarity to eachother, which is greater than a pre-defined threshold.

As previously mentioned, the output of the learning functionality of themanagement application 50 is clusters of yet unresolved profiles (arrow4). The clusters of the yet unresolved profiles, together with a profiledescription (arrows 5), are the input to the profiles determinationfunctionality of the management application 50.

The profiles description is a classification, or definition, of profilesof viewers by groups that associates between, for example, viewinghabits and purchasing habits of individuals. The profiles description isprovided by an external source, such as, but not limited to, a singlesource researcher. It should be noted that the profile description inputis some external definition of profiles that is fed to the system.

The profiles determination functionality performs a match between theprofiles found by the learning functionality (unresolved profiles) andthe profiles description from the external source, which determineswhether to match the profiles to demographic clustering or to a specificpsychographic clustering, for example, by consuming habits. The profiledetermination with respect to a given profile description may be done,for example, by performing a standard best match procedure on each ofthe profiles in both groups (unresolved and pre-defined) and by findingthe best possible match to each profile from the unresolved group fromthe defined profiles. It should be noted that sometimes one unresolvedprofile might fit to two described profiles and vise versa—two or moreunresolved profiles can match one profile from the described profilesgroup.

The output of the profiles determination functionality are the resolvedprofiles (arrow 6), which are the input, together with the set top boxsignatures, to an identification functionality (arrows 7).

In accordance with an alternative embodiment of the invention, thelearning and the profiles determination functionalities may be performedsimultaneously by combining these two functionalities (learning andprofile determination) of the management application 50 into one. Inaccordance with this embodiment, the profiles description and the settop box signatures are both fed as inputs to the learning and profilesdetermination functionalities (arrows 3 and 5). In this case, thelearning and profiles determination functionalities are performedtogether. The output of the learning and profiles determinationfunctionalities is resolved profiles (arrow 6). In the case of combiningthese two functionalities, directing the learning process toward theinput profiles description may be done by, for example, but not limitedto, feeding the described profiles as an initial guess to theoptimization process and using the number of the defined profiles as thenumber of profiles to found.

The resolved profiles are sometimes used together with the set top boxsignatures as an input to the identification functionality of themanagement application 50 (arrows 7), to associate each set top box inthe network with at least one profile, during which, for example, aquantization process may be performed and each set top box in thenetwork may be associated with at least one profile.

A quantization process is a process during which, rather than having acontinuous range of probabilities of having each of the profilesassociated with some set top box, some profiles would be decided as notassociated to that set top box (due to having a too small probability ofbeing associated), while other profiles would be decided as beingassociated (with some higher probability, or 1). A quantization processmay be performed by, for example, calculating a statistical constantrelated to the association of profiles to set top boxes (see detailedexplanation below) and performing rounding steps. A quantizationprocedure may be performed at various steps of the learning andidentification process.

The identification of lists of profiles associated with each set top boxin the network may be performed by, for example, but not limited to,combining the association rule between unresolved profiles to set topboxes and the association rule between resolved and unresolved profilesto create an association rule associating lists of resolved profiles toset top boxes. For example, the association rules may be matrices ofparameters and the application of the association rules may beperformed, by using matrix multiplication.

The output of the identification functionality (arrow 8) is theidentification of which profile(s) uses each of the set top boxes in thenetwork. In other words, the output is an identification of at least oneprofile associated with each set top box in the network.

The profiles description, set top box signatures, and profilesassociated with each set top box (arrows 9) are fed to analyzerfunctionality of the management application 50, the output of which isan estimation of identification quality and error estimation (arrow 11).Specifically, the analyzer is a self-assessment tool of the managementapplication. The analysis in the case of unsupervised learning isperformed with respect to the profiles definition input. The output ofthe analyzer may be, for example, the quality of the ability of thesystem to classify the profiles into groups according to the givenprofile definition, ranking the quality of the input data in view ofdesired output versus the actual output, and error estimation regardingthe accuracy of the identification process.

The estimated errors may be, for example, the expected deviation fromthe actual situation, and false positive and false negativeidentification rates. Moreover, correlations between the differentprofiles groups may be calculated, thereby providing informationregarding identification possibilities of certain profiles with respectto their correlations with other profiles. This may be done, forexample, by performing comparison of results with known statistics, orby comparing results obtained for all of the network with resultsobtained from a well representing subgroup of the network.

The identified profiles associated with a set top box are fed as aninput, together with the set top box signatures (either the same onesused for the learning and identification functionalities, or others,such as time signatures or high-resolution time signatures) andadditional set top box data, if required, to post processorfunctionality of the management application 50 (arrows 12). The postprocessing functionality computes various data, such as: regionaltargeted rating (RTR), content to profile assignment (C2P), totalviewership and viewership flow. A description of these functionalitieswas presented above. Note that the computation of the functionalities ofthe post processor may remain the same for data (associating lists ofprofiles to set top boxes) obtained via supervised learning,unsupervised learning, or an external source.

Reporting functionality of the management application 50 uses thecomputed data to produce business and other reports (arrow 13). As withthe supervised scenario, the association process, also referred to asthe learning and identification process, is divided into multiple steps.The steps in the association process include data collection, modeling,learning, profiles determination, identification, analysis, and postprocessing. Of the multiple steps, usually the data collection,modeling, analysis and post processing remain the same for both thesupervised and unsupervised processes. The main difference in thesupervised and unsupervised processes is in the learning step, which mayalso include a profile determination step, and which may inflict somedifferences in the identification steps. Note that the steps oflearning, profile determination, and identification are sometimes calledhere for short, “unsupervised learning”. The unsupervised learningprocess is further defined herein below.

Learning

For unsupervised learning, each set top box signature is learned to beassociated with a certain list of unresolved profiles defined solelyusing the set top box signatures. Examples of such set top boxsignatures include, but are not limited to, viewing signatures, timesignatures, high-resolution time signatures, and zapping frequencysignatures. It should be noted that the main difference from thesupervised learning process is that no sample is provided in this case.An unsupervised learning algorithm receives the set top box signaturesonly as an input, resulting in a classification of profiles into, forexample, a certain type of psychographic (for example, behavioral) ordemographic profile groups. After the first step (unless the steps oflearning and profile resolving are combined) the resulting learnedprofiles are usually yet unresolved, meaning that their nature is yet tobe resolved.

Examples of unsupervised learning algorithms include, but are notlimited to, least squares algorithms and algorithms that provideminimization via steepest decent. Other outputs from the learningalgorithms include an association of profiles to set top boxes andobtaining a targeted rating of the defined profiles at the same time,thereby providing a probability that a profile is associated with a settop box.

The following is provided as an example of an unsupervised learningalgorithm. An input to the unsupervised learning process is thecollection of set top box signatures, which is the output of the datamodeling process. Assume as an example that these are viewing signatures(although these might be time signatures, etc.), where we denote theirparametrical representation by a matrix C. For example, each row of thematrix C may refer to one set top box, and each column of the matrix Cmay refer to, for example, but not limited to, one program, where theentries of matrix C may be, for example, the portions of the programsthat each set top box watched, or, for example, the probabilities withwhich each of the set top boxes represented in matrix C watched each ofthe programs represented in matrix C. Let us denote by a matrix A thecollection of probabilities, representing viewer profiles association tothe set top boxes, where the entries of the matrix A are theprobabilities of each of the viewer profiles to be associated with eachof the set top boxes. Note that the viewer profiles might be yetunresolved viewer profiles at this stage. Let us denote by the matrix B,targeted rating probabilities. Both A and B are unknown in the case ofunsupervised learning. To obtain the desired outputs A and B, we use,for example, but not limited to, the following method. We minimize thesquared norm of the difference (AB−C) (see equation three), to obtainthe approximation of the matrix C as the product AB. For this, we areusing, for example, but not limited to, a convex optimization algorithm(or, for example, some other nonlinear minimization algorithm) undervarious constrains, such as, but not limited to, that each quantity in Ais greater than zero and smaller than one, and each quantity in B isgreater than zero and smaller than, for example, 0.5. The followingdescription further describes this process.

Following this example, to determine a possible algorithm for achievingthe minimization of the squared norm of the matrix (AB−C), (see equationthree), considered above, it is assumed that the population consists ofviewers that can be divided into several groups of different profiles,where each viewer may belong to one or more group of viewers profiles.Each such group of profiles is associated, for example, with a behaviorpattern in terms of watching habits, where the pattern consists of, forexample, but not limited to, the viewing signatures and the targetedrating per content and per each profile, where the targeted rating forthe profile is the probability of a viewer of this profile watching eachprogram, or some other definition of content.

Since usually the number of all possible profile groups is low comparedto the number of programs and set top boxes in the network, one isactually looking for a low rank approximation of the matrix C, the termlow rank (of matrices A and B) refers in this case to the fact that thenumber of different profile groups is smaller than the dimensions of C,representing for example the number of programs and the number of settop boxes in the network, where due to this low rank the matrices A andB may be obtained using this approximation. One approach to obtaining alow rank approximation of the matrix C is to search for the matrices Aand B that minimize the squared norm of the matrix (AB−C). This can bedone using, for example, a convex optimization method on the quantity ofequation three, which reads:

$\begin{matrix}\begin{matrix}{n = {{{AB} - C}}^{2}} \\{= {\sum\limits_{i,j}( {{\sum\limits_{k}{A_{ik}B_{kj}}} - C_{ij}} )^{2}}} \\{= {{Trace}( {( {{AB} - C} )^{T}( {{AB} - C} )} )}}\end{matrix} & ( {{Eq}.\mspace{14mu} 3} )\end{matrix}$

where n denotes the squared norm of (AB−C), and trace is a knownoperation on a matrix providing the sum of the diagonal. In order tominimize this efficiently, one may use the derivatives of equationthree, described in equations four and five, each of which read asfollows:

$\begin{matrix}{\frac{\partial n}{\partial A_{ab}} = { {2{\sum\limits_{i,j}{( {{A_{ai}B_{ij}} - C_{aj}} )B_{bj}}}}\Rightarrow\frac{\partial n}{\partial A}  = {2( {{AB} - C} )B^{T}}}} & ( {{Eq}.\mspace{14mu} 4} )\end{matrix}$

and correspondingly,

$\begin{matrix}{\frac{\partial n}{\partial B} = {2\; {A^{T}( {{AB} - C} )}}} & ( {{Eq}.\mspace{14mu} 5} )\end{matrix}$

The second derivatives may also be calculated in order to perform thisminimization and they are given by the combination of equations six,seven, and eight below:

$\begin{matrix}{\frac{\partial^{2}n}{{\partial A_{ab}}{\partial A_{c\; d}}} = {2\; {\delta_{a\; c}( {BB}^{T} )}_{bd}}} & ( {{Eq}.\mspace{14mu} 6} ) \\{\frac{\partial^{2}n}{{\partial B_{ab}}{\partial B_{c\; d}}} = {2\; {\delta_{bd}( {A^{T}A} )}_{a\; c}}} & ( {{Eq}.\mspace{14mu} 7} ) \\{\frac{\partial^{2}n}{{\partial A_{ab}}{\partial B_{c\; d}}} = {{2\; A_{a\; c}B_{bd}} + {2\; {\delta_{bc}( {{AB} - C} )}_{ad}}}} & ( {{Eq}.\mspace{14mu} 8} )\end{matrix}$

Using any standard convex optimization technique and the derivativesabove with the (convex) constraints 0≦A_(ij), B_(ij)≦1, a solution ofthe optimization problem may be found, where the joint dimension of thematrices A and B is chosen as the desired, or expected, number ofprofiles.

The matrix A is to be understood as the set of probabilities ofassociation of each of the profiles per each of the set top boxes andthe matrix B is the targeted rating matrix. Since the matrix A isexpected to contain binary quantities (either a profile exists in ahousehold or not), and since the optimal solution is defined up to amultiplicative constant for each profile, it is desirable to find a goodquantization criterion for A.

Instead of the above-described example, for the unsupervised learningalgorithm, one may consider the slightly more complex example describedbelow. Moreover, these alternative ways may be used to address specificdifferent cases and the present invention is not limited to theseexamples. An example of an alternative way is, instead of minimizing thesquared norm of the matrix (AB−C), minimizing the squared norm of(B−(A⁺)C), denoted herein by m:

m=∥B−(A ⁺)C∥ ²   (Eq. 9)

In addition, it is also possible to minimize the squared norm of(A−C(B⁺)), denoted by v:

v=∥A−C(B ⁺)∥²,   (Eq. 10)

where A⁺ denotes the pseudo-inverse of the matrix A, and B⁺ denotes thepseudo-inverse of the matrix B. For example, the Moore-Penrosepseudo-inverse may be used. This enables a reduction of thedimensionality of the problem as the dimensions of the later matricesare usually much smaller than of the matrix (AB−C). Further, thisapproach creates a sharper distinction between the probabilities in A(desired to be binary) and of B (usually small probabilitiesrepresenting targeted rating) in the minimization process. Thepseudo-inverse of a matrix is unique in mathematical terms, henceminimizing equations nine or ten is well defined. In the case ofminimizing, for example, the quantity m, one would need to use thederivatives

${\frac{\partial m}{\partial A}\mspace{14mu} {and}\mspace{14mu} \frac{\partial m}{\partial B}},$

which involves calculating derivatives of the form

$\begin{matrix}{{\frac{\partial A^{+}}{\partial A_{ab}},{{where}\text{:}}}{\frac{\partial A_{ij}^{+}}{\partial A_{ab}} = {{( {A^{+}A^{+^{T}}} )_{ib}\delta_{ja}} - {A_{ia}^{+}A_{bj}^{+}} - {( {A^{+}A^{+^{T}}} )_{ib}( {A^{+^{T}}A^{T}} )_{aj}}}}} & ( {{Eq}.\mspace{14mu} 11} )\end{matrix}$

The result of applying the derivative in equation eleven to obtain thederivatives

$\frac{\partial m}{\partial A},{{and}\mspace{14mu} \frac{\partial m}{\partial B}},$

so as the second derivatives, of the quantity m, results in slightlylonger expressions than the derivatives presented above, in equations4-8, but similar in nature.

Moreover, instead of using convex minimization routines, we may usevarious nonlinear minimizations with slightly altered constrains tominimize the squared norms of the differences above.

An initial guess, for example, but not limited to, a random guess, isgiven to the algorithm for any of the probabilistic quantities in A andB. Additional constrains may be given to the algorithm to increase itsaccuracy. Of course, other optimization (or learning) algorithms may beused. The output is a set of probabilities, A, associating groups ofprofiles to the set top boxes, which later may be quantized and/orresolved (using, when needed a profile resolving procedure andquantization), and a set of probabilities, B, providing the targetedrating for each (for example) program and each profile (also to be usedin the profile resolving scheme when needed). It should be noted thatthe targeted rating may be recalculated during the post-processing toincrease the accuracy. It should be noted that the abovementionedexamples, equations, and functionalities are based upon the generalpremise that matrix C can be approximated by matrix A multiplied bymatrix B. Of course, further examples for achieving such approximationmay be provided and such examples are intended to be included within thepresent invention.

Quantization

The quantization step is typically, but not necessarily, to be usedafter the learning and profile determination stage, in theidentification functionality, or a few times during the steps oflearning, profile determination, and identification.

One approach to finding the quantizing constants (a set of constantsthat each of the probabilities relating each of the found profiles toset top boxes should be divided by to determine whether a certainprofile should indeed be associated with a certain set top box or not)is to assume that A is approximately a binary matrix with a constantmultiplicative factor per column, s_(i) (1≦i≦number of profile groups),or in other words, assume that each of the i profile groups has its ownquantization constant. Since the entries are supposed to be binaryquantities, one expects the following from calculating the mean andvariance using the binomial distribution, as shown by equations 12 and13.

Σ_(a)A_(ai)=s_(i)Np   (Eq. 12)

Σ_(a) A _(ai) ² /N−(Σ_(a) A _(ai))² /N ² =s _(i) ² pq   (Eq. 13)

where N is the number of set top boxes in the network, p is theprobability that a profile is associated to a set top box, and q=1−p.Solving equation twelve and equation thirteen for s_(i), dividingA_(ai)/s_(i) and rounding to a pre-defined threshold, leads to anassociation rule, associating each of the profiles (resolved or yetunresolved) to each of the set top boxes.

Profile Determination

Profile determination, or resolving, is a process that defines thenature of identified profiles. During profile resolving, profilesdefinition, for example from a single source research results, such as,but not limited to, viewing habits and behavior, may be used as inputs.In addition, the profile list and targeted rating of defined profilesmay be used as inputs. The inputs are provided to a resolving algorithmresulting in profile descriptions that describe each profile in thelist.

The single source research addresses a focus group that answers aquestionnaire. There are two groups of questions in this questionnaire,namely, a first group and a second group. The first group refers toidentity of a person, examples including behavior (i.e., purchasingbehavior, rest and relaxation preferences, etc) and demographic profileof the answering person. The second group refers to media consumption,for example, about the time a person would watch television each day ofthe week and his preferred shows.

The single source research associates the media consumption habits withother habits, such as, but not limited to, purchasing habits andpreferred vacation habits. The output of the single source research is aset of profiles and their habits, while each profile is associated withits media consumption habits. The resolving algorithm finds the bestcorrelation between two sets of data, namely, for example, the mediaconsumption habits of the focus group; and, for example, the targetedrating of the defined profiles (the output of the unsupervised learningalgorithm). Therefore, the resolving algorithm has the capability ofdefining the traits of the learned profile in the unsupervisedalgorithm.

In accordance with the present invention, after the learning andidentification are performed, the management application 50 knowsonline, or offline, the current psychographic or demographic profilesthat are consuming content for at least a portion of the set top boxesof the network for which the zapping log contains records of set top boxzapping signatures. The information regarding the currentdemographic/psychographic profiles that are consuming content for settop boxes within the network for which sufficient input was received,may be the basis for personalized advertisements deployment inaccordance with the present invention.

Real Time Targeted Rating (RTTR)

The present system and method provides the capability of determiningwhether a set top box within a network is on or off. In addition, if theset top box is on, the present system and method provides the capabilityof identifying in real time, or near real time, which viewer profile iscurrently consuming content provided by the set top box, what is thetargeted rating of the viewer profile, or profiles currently consumingcontent provided by the set top box, and a targeted rating of all viewerprofiles that consumed content of the set top boxes within the network,which are part of the real time targeted rating system, for a predefinedtime interval. This real time process is referred to herein as the realtime targeted rating. As previously mentioned, the content may be, forexample, but not limited to, video, audio, data, or any combination ofthese. As will be described in additional detail herein, the real timetargeted rating functionality uses the functionalities and methodologiesmentioned above with regard to supervised learning, unsupervisedlearning, identification, content to profile assignment, and targetedrating. The real time targeted rating process is described in detailhereafter.

Functionality performed in real time targeted rating may be performed bya separate or the same management application of the present system andmethod, located in a head end or in a different location, or amanagement application located in a different location, as describedhereinabove. In addition, the functionality may be performed by aseparate computer and/or server (not shown). The embodiments areintended to be covered by the present description. It should further benoted that certain functions of the real time targeted rating processmay instead be performed by the set top box itself.

In accordance with the present invention, queries can be made by usersof the present system and method for execution of the real time targetedrating functionality for each set top box within the network that iscovered by the present system and method. These queries may be made, forexample, but not limited to, through a remote web client. For example,multiple web based clients may subscribe to the system described hereinfor retrieving pre-configured reports, reports which are createdautomatically by the system periodically every pre-defined time interval(for example, 5 minutes), or per query. Such queries may be made, forexample, regarding each of the pre-defined viewer profiles to find outin real time, or near real time, whether a set top box in question is onor off, to identify what viewer profile, or viewer profiles arecurrently consuming (or consumed for the last predefined time interval)content via the set of box in question, to determine a targeted ratingfor a specific viewer profile that consumed content from this set topbox, and to determine targeted ratings of all viewer profiles thatconsumed content of the set top box, or set top boxes, within apredefined time interval. An example of determining targeted ratings ofall viewer profiles that consumed content of the set top box, or set topboxes, within a predefined time interval includes calculating targetedratings for viewer profiles that were determined to be consuming contentprovided by the set top box, or several set top boxes, within the lastfive minutes. Such a determination uses, per each set top box, at leastone set top box signature summarizing activities of the set top box forthe last five minutes. Further description is provided herein.

The real time targeted rating system may include a part, or all, of thefollowing capabilities: data collection, modeling, learning,identification, content to profile assignment, targeted rating (orregional targeted rating), and a reporting capability, which can beutilized, for example, via a web interface, or other interface, toproduce, for example, business reports, system reports, or any otherreports involving the produced data. These reports may be generatedautomatically, periodically (for example, every 5 minutes), or per aquery, or both. A query may be initiated, for example, by a user of thesystem, by a web client, or by any other interface interacting with thesystem and having the capability of making a query. Such a query may be,for example, automatic, or manual, or provided by another method.

The real time targeted rating system may be beneficial for contentplacement, for example, at a certain time and a certain channel, or acertain time and a certain set top box; where content, may refer, forexample, to an advertisement. Other examples of content may be aprogram, or an audio content, or any other example of content that maybe consumed via a set top box.

FIG. 13 is a flowchart 1100 illustrating functions performed by thepresent system and method during execution of the real time targetedrating process. As shown by block 110, a determination is made regardingwhether a set top box is on or off. The process of determining whether aset top box is on or off is described in detail with regard to theflowchart of FIG. 14, as provided hereafter.

Returning to FIG. 13, as shown by block 1120 if the set top box is on,the real time targeted rating functionality determines what viewerprofile or profiles are currently consuming content provided by the settop box. Determining which viewer profile or profiles are currentlyconsuming content provided by the set top box is described in detailhereafter.

After determining which viewer profiles are currently consuming content,a targeted rating or targeted ratings may be determined (block 1130).The targeted rating may either be a targeted rating for a viewer profilecurrently consuming content provided by the set top box or the targetedratings may be targeted ratings of all viewer profiles that consumedcontent of the set top box, or of several set top boxes, within apredefined time interval. It should be noted that the real time targetedrating process may be repeated after the passing of a predefined timeperiod, per user query, or both. By repeating this process, after thepassing of the predefined time period, the real time, or near real time,determination of which viewer profiles are consuming content from theset top box, may change, and is maintained current (in the sense thatafter each predefined time period, a new determination of what viewerprofile(s) are consuming content of the set top box is achieved,maintaining always the most current identification). The time intervalis small enough to be considered ‘now’ and big enough to allow for theaccumulation of enough data.

Generating reports (for example, busyness reports, and/or systemreports), as shown by block 1140, either automated, periodic, per a userquery, or both, may also be provided.

On/Off Set Top Box Determination with Real Time Targeted Rating

In accordance with the present invention, the present system and methodprovides the capability of determining whether content provided by a settop box within the network is being consumed by a viewer profile.Determining whether content is currently being consumed allows thepresent system and method to determine if a set top box is currently onor off.

One method that is used by the present system and method to determine ifcontent is currently being consumed is to continuously update a set topbox zapping signature with the occurrence of each new zapping eventassociated with a set top box. By continuously updating the set top boxzapping signature of the set top box, the set top box zapping signatureremains current and may be considered for determining if a set top boxis currently on or off. It should be noted herein that, in accordancewith the present invention, a set top box is considered to be off notonly if no power is being received by the set top box, but also ifcontent provided by the set top box is not being consumed by a viewerprofile within a predefined period (for example, if no zapping eventoccurred during a predefined time period, with or without association toa schedule).

FIG. 14 is a flow chart 1200 further illustrating the process ofdetermining if a set top box is on or off, in accordance with anexemplary embodiment of the invention. As shown by block 1210 abroadcast schedule for a set top box within a network is received. Aspreviously mentioned a broadcast schedule includes, for example, atimetable for the platform channels/programs during the zappinggathering period. It should be noted that the broadcast schedule mayalso include a schedule of video on demand programs, a schedule of audioprograms, or a schedule of any interactive services.

As shown by block 1220, a determination is made regarding when contentprovided by the set top box is complete. As an example, a determinationmay be made regarding when a video program or audio program is complete.After completion of content provided by the set top box a predefinedtime period is allowed to pass (block 1230). As shown by block 1240 adetermination is then made regarding whether a zapping event hasoccurred prior to the expiration of the predefined time period after thecompletion of content provided by the set top box. If the predefinedtime period expired and no new zapping event occurred, the set top boxis considered to be off. Alternatively, if a zapping event occurredwithin the predefined time period, the set top box is considered to beon. Alternatively, if for example a schedule is unavailable, thedetermination whether a set top box is on or off may be achieved bychecking if a zapping event occurred during an elapsed predefined timeperiod.

Determining whether the set top box is on is important for multiplereasons. One such reason is that content provided by or to a set top boxwhen the set top box is considered to be off should not be consideredwhen determining whether a viewer profile, and what viewer profile, iscurrently consuming content from the set top box. Such determinationprovides for a more accurate determination of current content consumedby a viewer profile. This determination is important when determining ifand what advertisement, or other content, to send to a set top box forconsumption by a viewer profile. Specifically, if no one is consumingcontent provided by a set top box, resulting in the set top box beingconsidered to be off, there is no benefit in forwarding advertisementsto the set top box. In fact, determining whether a set top box is on oroff is important for other calculations performed by the present systemand method. If a set top box is considered to be off, perhaps due to alack of zapping events occurring, content being provided by the set topbox, or that is available to the set top box, should not be consideredfor calculation purposes, such as in determining which viewer profile isassociated with which set top box. Specifically, for example, when a settop box is off, the input set C, which has been used in manycalculations described hereinabove, may have a value of zero, in a placerepresenting content transmitted during a time when the set top box wasconsidered by the application to be off. Alternatively, depending ondata representation, the set C may contain no entries corresponding totime intervals, or contents available to the set top box, during whichthe set top box was determined by the system to be off.

It should be noted that the updating of the set top box zappingsignature may instead be updated in accordance with a predefinedschedule so as to alleviate the need for acquiring and processing aschedule, for updating the set top box zapping signature with each newzapping event. As an example, if the real time targeted rating processis being performed every five minutes, it would be beneficial to havethe set top box zapping signature updated at least every five minutes.Of course, the timing in which the set top box signature is updated mayhave many different values.

It should also be noted that, in accordance with alternative embodimentsof the invention, as mentioned above, a broadcast schedule may not benecessary for determination of whether a set top box is on or off.Specifically, a time gap between zapping events may be considered todetermine if a set top box is on or off. As an example, if a predefinedtime period passes between zapping events, a set top box may beconsidered to be off. Other methods of determining whether a set top boxis on or off may also be used, and such methods are intended to beincluded within the present description.

As previously mentioned, with determination that a set top box is on,the real time targeted rating functionality determines what viewerprofile or profiles are currently consuming content provided by the settop box. The real time targeted rating functionality applied dependsupon whether supervised or unsupervised learning was performed by thepresent system and method for determining what viewer profiles areusually associated with which set top boxes. Herein, the term, usuallyis used to distinguish between currently (i.e. in real time, or nearlyreal time), and during a ‘relatively long’ period of time during whichdata was collected. The data regarding the ‘usual’ (rather than current)association of viewer profiles to a certain set top box, may also beperiodically updated, for example every three months (or any other timeinterval, which is longer than the time interval defined as current).

The following describes the real time targeted rating process used fordetermining what viewer profile or profiles are currently consumingcontent provided by the set top box, in accordance with the presentsystem and method, when a determination has been made that a set top boxis on. As mentioned above, after determining that a set top box is on,the real time targeted rating process then depends upon whethersupervised or unsupervised learning was performed by the present systemand method for determining what viewer profiles are associated withwhich set top boxes in real time, or a nearly real time.

The following first illustrates steps taken in real time targeted ratingwhen supervised learning was performed to determine what viewer profileswere associated with which set top boxes. Thereafter, illustration isprovided of the steps taken in real time targeted rating whenunsupervised learning was performed to determine what viewer profileswere associated with which set top boxes. It should be noted that thefollowing provides examples of processes that may be performed duringthe real time targeted rating process and the invention is not intendedto be limited to the same.

Real Time Targeted Rating with Supervised Learning

Referring to the supervised learning scenario, the Association Rulederived after performing supervised learning, as previously described,is gathered. As previously mentioned, the Association Rule providesknowledge of how to associate a list of profiles within a network to aset top box within the network. A list of one or more of the viewerprofiles that are determined to be associated with the set top box, asdetermined after performing the identification process, are gathered.The identification process is not repeated here since it has beendescribed in detail hereinabove.

To determine which of the list of one or more viewer profiles that weredetermined to be associated with the set top box are currently consumingcontent provided by the set top box, the previously obtained associationrule, together with the list of one or more of the viewer profiles thatwere determined to be associated with the set top box, through theidentification functionality previously described, are applied to anewly obtained set top box signature for the set top box in question.Specifically, the set top box signature used is one that is current, orone that has been updated at least within a predefined period.Alternatively, instead of using the association rule, but still usingthe list of one or more viewer profiles determined to be associated withthe set top box, the present system and method may provide real time, ornear real time, determination of the one or more viewer profiles thatare currently associated with a set top box by applying the content toprofile procedure, as previously described, to currently consumedcontent, as identified by a set top box signature, and to the list ofthe one or more viewer profiles determined to be associated with the settop box.

To apply the content to profile procedure the process used by thecontent to profile functionality is performed. Specifically, forexample, a set A and a set C are provided, where the set A is a list ofone or more viewer profiles associated with a set top box within anetwork, and set C is a summary of which set top boxes within thenetwork consumed content. To determine which profiles consumed contentwithin the last predefined time period, via use of the content toprofile functionality, we start with a summary of which set top boxeswithin the network provided content within the predefined period. Thissummary of which set top boxes within the network provided contentwithin the predefined period can be obtained by reviewing the set topbox signatures of each set top box in the network.

Having the list of set top boxes that provided content within the lastpredefined time period, a determination is made as to which profiles areassociated with the set top boxes that provided content within thepredefined period. As an example, profiles f1 and f3 may be associatedwith set top box 1 (STB1), and profiles f1 and f2 may be associated withthe set top box 2 (STB2). This example may be represented as STB1 has(f1, f3), and STB2 has (f1, f2).

A determination is then made as to the probability that, within thepredefined time period, a specific profile consumed content provided bya set top box that provided content within the predefined time period.An example of a method that may be used to determine the probabilityfollows. If there are ten set top boxes in a network that providedcontent within the predefined period, and five of these set top boxesare associated with profile f1, while four of these set top boxes areassociated with the profile f2, the probability that a profile f1consumed content within the predefined period, wherein the content wasprovided by a set top box that provided content within the predefinedperiod, can be represented as P(f1)=5/10. In addition, the probabilitythat a profile f2 consumed content within the predefined period, whereinthe content was provided by a set top box that provided content withinthe predefined period, can be represented as P(f2)=4/10.

The probability that one or more viewer profiles associated with aspecific set top box consumed content within the predefined period, fromthe specific set top box, is then considered by selecting probabilitieshaving values closest to one (for example, P(f3)=0.93), where theprobability is for a profile known to be associated with the specificset top box, and the specific set top box provided content within thepredefined time period. Profiles associated with the probability havinga value closest to one are selected as the profiles that consumedcontent from the set top box within the predefined period. It should benoted that this example may be made more accurate if, to thecalculation, the probabilities of association of each of the profiles toa specific set top box, and/or the probabilities of the presence of eachof the viewer profiles within the network, are added.

It should be noted that the above is merely an example, and any othermethod of calculating content to profile assignment, as described hereinabove, or in any other form, may be used.

Real Time Targeted Rating with Unsupervised Learning

For the unsupervised learning scenario, completion of the unsupervisedlearning process and the identification process results in a list of oneor more viewer profiles associated with a set top box in question. Thelist of one or more viewer profiles that are determined to be associatedwith the set top box, are gathered.

To determine which of the list of one or more viewer profiles that weredetermined to be associated with the set top box are currently consumingcontent provided by the set top box, the list of one or more of theviewer profiles determined to be associated with the set top box isapplied to a newly obtained set top box signature for the set top box inquestion. Specifically, the set top box signature used is one that iscurrent, or one that has been updated at least within a predefinedperiod. For example, such application may include performing all stepsdescribed in the unsupervised learning process, but with the input ofonly the at most few resolved viewer profiles that were previouslydetermined to be usually associated with the specific set top box.

Alternatively, instead of applying the list of one or more of the viewerprofiles determined to be associated with the set top box in question toa newly obtained set top box signature for the set top box in question,the present system and method may provide real time, or near real time,determination of the one or more viewer profiles that are currentlyassociated with a set top box by applying the content to profileprocedure, as described above with regarding to the supervised process.

With the supervised and unsupervised scenarios described above, itshould be noted that the present system and method is also capable ofdetermining what viewer profiles that are associated with a set top boxare currently consuming content provided by the set top box, even ifthere is no previous data or knowledge regarding viewer profilesassociated with set top boxes. In such a situation, the set A ismissing, where the set A is a list of one or more viewer profilesassociated with a set top box within a network. The set C can then beobtained for a predefined period, such as, but not limited to, the lastfive minutes, where the set C is a summary of which set top boxes withinthe network consumed content. With there being a sample, the supervisedprocess mentioned above may be performed, resulting in a viewer profileor profiles that are currently consuming content provided by the set topbox. Alternatively, if there is no sample, the unsupervised learningprocess described above may be performed, resulting in a viewer profileor profiles that are currently consuming content provided by the set topbox. As has been previously mentioned, herein, the term currentlyconsuming is intended to be the same as consuming within a predefinedperiod.

It should be noted that, with regard to set top box signatures, themethod of real time targeted rating includes the steps of datacollection (for example, zapping log and schedule), and modeling,periodically, every pre-defined time interval (for example, every fiveminutes), to obtain the set top box signatures. Alternatively, to obtaina set top box signature, the collection and the modeling may beperformed per each event occurring at the set top box, for example, anyinteraction of a viewer profile with the set of box, such as pressingthe info button.

By the present system and method performing the real time targetedrating functionality, the system and method contains the following data,or is ready to obtain the same upon request: either an association of atleast one viewer profile to at least a one set top box within thenetwork, that had been consuming content using this set top box duringthe last short pre-defined time interval (for example five minutes), orreport that the set top box at question being shut off during this timeinterval; then, the targeted rating of each of the pre-defined in thesystem viewer profiles for the last time interval (for example, fiveminutes) may be provided.

It should be noted that while examples of time intervals for updatingset top box signatures and other content are exemplified as being fiveminutes, the time interval is not limited to five minutes, but insteadmay be any other time interval.

The following provides an example of a way to calculate and operate thereal time targeted rating functionality.

As one example, the real time targeted rating application may receive asan input the results of learning (supervised or unsupervised) from themanagement application, performed for any period of data collection, inthe form of ‘learned matrices’, which are sets of parameters providingan association rule between set top boxes within the network and atleast one viewer profile (for example demographic or psychographic). Inaddition, the real time targeted rating application may receive as aninput any set top box information, such as the identification of viewerprofiles that had been associated to this set top box, via learning andidentification procedures, performed, for example, at the managementapplication, or at the server, or received from an another externalsource. Other set top box information, may include, for example, theregion in which the set top box is located, and/or other statusinformation regarding the set top box.

Any additional inputs, obtained for the set top boxes within thenetwork, or for viewer profiles, at an earlier time, such as thedescription of viewing habits of profiles or set top boxes within thenetwork, or any other relevant information may be used as well.

The output of the real time targeted rating functionality is theidentity of the viewer profile (out of a pre-defined list, for example,a list containing a few demographic profile types or a list containing afew psychographic types or any mixture of those, that had beenassociated to a specific set top box) that is currently watching each ofthe set top boxes within the network, that are part of the real timetargeted rating system, that data was received for, and that are knownnot be switched off; and, a targeted rating, or a regional targetedrating for each of the identified profiles, per content provided at thepre-defined time interval (for example, 5 minutes), per which theidentification of current viewer profiles was performed. The lateridentification is referred to as online identification and it may takeplace online, or nearly online, with a small time delay needed toreceive and process the data, or gather sufficient amount of data, inpre-defined time steps. One way to obtain these outputs may be, forexample, using the identification functionality, described above. Theuse of the identification functionality in this example, may beperformed via applying the currently obtained (for example, for the last5 minutes interval) set top box signatures (for example, viewingsignatures) to the learned matrices; this can be done, for example, byusing mathematical, or other operations, such as multiplication (forexample, multiplication of a vector and a matrix). The later may be doneeither using the whole learned matrix obtained for a ‘relatively long’pre-defined previous time period (for example, a month), or using justthe part of the learned matrix, which is narrowed, for each specific settop box, only to the list containing at least one viewer profile, whichis associated to each specific set top box, for which at least one settop box signature was obtained. Due to the fact that the identificationis done on the basis of viewing behavior that occurred in a very shorttime period (for example, 5 minutes), the identified viewer profile, orprofiles, would usually be those consuming content at the specific settop box, in real time, or nearly real time.

The learned matrices, together with the list(s) of profile(s) associatedwith each set top box within the network, may be stored within the realtime targeted rating server, or downloaded to the set top boxesthemselves (where each set top box would contain only the part of thelearned data associated with it). In addition, the set top boxsignatures may be inferred at the set top box level, or, if the learnedmatrices are stored at the server level, set top box zappingsignature(s) may be uploaded (per a time interval, or per a zappingevent) to the real time targeted rating server, and the set top boxsignature(s) may be updated if during the pre-defined time interval (forexample, 5 minutes) a new zapping event occurred, which was not yetincluded in the set top box zapping signature. In such a case, theidentification may be applied once, or again and again after eachzapping event within the predefined short time period (for example, 5minutes); where the newly obtained signature (the set top box signatureobtained, for example for the last 5 minutes period) will usuallycontain the information regarding the latest occurring zapping event(s).

In the case that during the short predefined time interval (for example,5 minutes) the set top box signature is updated with each occurringzapping event and the identification process is applied repeatedly witheach such zapping event, the identification of the current viewerprofile consuming content via a specific set top box within the networkis expected to be of high accuracy, as the identification accuracy wouldincrease with each such iteration.

To summarize, the real time targeted rating system is capable ofreceiving previously processed data (such as previous results oflearning and identification); continuous real time, or nearly real time,data collection (set top box zapping signatures, and possibly aschedule) for any pre-defined time interval prior to the desiredidentification, for example, 5 minutes, and in some cases per eachzapping event (such as turning the set top box on/off), andprocessing/modeling capabilities of the continuously collected data.After each such short predefined time interval (for example, 5 minutes),the real time targeted rating system outputs a snapshot of the set topboxes within the network, where for each such set top box, the viewerprofiles, currently consuming content via the set top box are identifiedand the targeted rating of these viewer profiles may be calculated.Reports (busyness and/or system) may be automatically periodicallygenerated, or may be generated per user query.

All collected and calculated data may be stored within the real timetargeted rating server and may be made available for use for futureidentification(s)/calculation(s), for any required time period.

The real time targeted rating server operates so that at each givenmoment a query might be posed to it regarding who is the currentviewer(s) using each of the set top boxes, which are part of the networkand part of the real time targeted rating system, and which the realtime targeted rating system inferred to be currently on. As a result tosuch a query, an output regarding the identification of a certain viewerprofile using these set top boxes by the last identification, or of afew viewer profiles with the probabilities of each of them using theseset top boxes, with respect to the last identification performed, isprepared. In addition, a targeted rating, or a regional targeted rating,per each of these viewer profiles may be calculated.

The online (or nearly online) identification and the targeted ratingcalculation may be performed, for example, at the real time targetedrating server, located, for example at the head end, where the real timetargeted rating server receives continuously inputs both from themanagement application and from the set top boxes, for example thoseconnected to the head end, and automatically performing per eachpre-defined time step, and/or per each zapping event occurring at any ofthe set top boxes, the steps of labeling each of the set top boxeswithin the real time targeted rating system as being switched on or off,and for those on, who are the viewer profile(s) using it in the currenttime interval, with or without assigned probabilities, and the(regional) targeted rating associated with each of the identifiedprofiles, and the last time interval for which identification tookplace. Alternatively, for example, the ‘learned matrices’ may be sent bythe real time targeted rating server to each of the set top boxes andstored there, the collection of the last occurring zapping events may beperformed at the set top box level and the identification of each viewerprofile using each of the set top boxes may be performed at the level ofeach set top box, where the result is sent back to the real timetargeted rating server and the (regional) targeted rating is calculatedat the real time targeted rating server. In this example, in addition,the list of profiles associated with each set top box within the networkmay be sent to be stored at the set top boxes. Then, the identificationof which viewer profile is currently consuming content via the set topbox at question, for the set top boxes within the network, may beperformed out of the short profile list, only out of those fewer viewerprofiles, associated to the set top box at question, or from the wholelist of profiles, if such a short list is not provided.

The identification of the profiles may be performed in a more accurateway, where the time interval, referring to ‘current identification’,maybe narrowed, so that as few profiles as possible are identified ascurrent viewer profiles associated with each set top box within thenetwork, that are part of the real time targeted rating system.

Any of the described above methods, or combination of them, or othermethods, may be used to address different specific situations.

Bidding

Advertisers require a method for easily purchasing advertisement timein, for example, but not limited to, broadcast networks. It should benoted that the advertisement time may be purchased in many differentenvironments and is not intended to be limited to within broadcastnetworks. The following provides the example of advertising within abroadcast network, however, this is only provided for exemplarypurposes. Moreover, advertisers require being able to suggest theirmaximum price for a placement of an advertisement, in an efficient way.It should be noted that such advertisements may be in many differentforms, including, but not limited to, video advertisements that mightrun a predefined period of time between programs, banners run duringprograms, audio advertisements, text run during or between programs, andmany other types of advertisements.

The present advertisement auctioning system and method allowsadvertisers to suggest their maximum price for placement of anadvertisement through a bidding process. For example, a small businessmight not being able to compete on expensive advertisement placing,however, the business would like to reach its advertising goals in aconvenient way, and for a price that is worthwhile for the business topay. In addition, for the limited budget that a small business typicalcontains it would be beneficial for the small business to be able toprovide specific advertising, for example, but not limited to, for anexact audience and at a specific time, at a limited cost. Such a processis provided by the advertisement auctioning system and method asdescribed herein.

In addition to the abovementioned, network operators require anautomated system for decision-making and advertisement placement in themost profitable and optimal arrangement possible. The present system andmethod provides such an automated system, which benefits both theadvertiser and the network operator.

As previously mentioned, the present system and method provides a userinterface that provides an advertiser that wishes to advertise to viewerprofiles with a means for bidding on, for example, but not limited to,requested time slots for specified or unspecified audience profiles,dates, channels, and programs. The system and method also provides anautomated method of determining winning bids, to allow associatedadvertisements to be placed in provided content. A billing system fordetermining the prices charged from the advertisers based upon theviewership and the bids placed is also provided. The portion of thepresent system and method capable of performing the bidding andassociated functionalities is referred to herein as an automatedadvertising system and method.

The bidding capability of the automated advertising system and methodmay be provided within a computer 1500 that is located separate from ahead end, such as the head end 20 of FIG. 1. Such a computer 1500 iscapable of communicating with the head end 20 and other portions of anassociated network. Alternatively, the automated advertising system maybe provided as software within the head end 20, such as, for example butnot limited to, within the management application 50 of FIG. 1. Theautomated advertising system of the invention can be implemented insoftware (e.g., firmware), hardware, or a combination thereof. In thecurrently contemplated best mode, the automated advertising system isimplemented in software, as an executable program, and is executed by aspecial or general purpose digital computer, such as a personal computer(PC; IBM-compatible, Apple-compatible, or otherwise), workstation,minicomputer, or mainframe computer. Specifically, the automatedadvertising system, as provided by the computer, may be accessible via aWeb site, through which parties using the automated advertising systemmay interact, via a graphical user interface. Further description of theautomated advertising system, and interaction therewith is providedbelow.

An example of a general purpose computer that can implement theautomated advertising system of the present invention is shown in FIG.15. In FIG. 15, the automated advertising system is denoted by referencenumeral 1500, which is the computer. It should be noted thatcommunication with the automated advertising system may be provided bymultiple means such as, but not limited to, the Internet. Furtherdescription with regard to use of the automated advertising system viause of the Internet is provided below.

Generally, in terms of hardware architecture, as shown in FIG. 15, thecomputer 1500 includes a processor 1510, memory 1520, storage device1530, and one or more input and/or output (I/O) devices 1540 (orperipherals) that are communicatively coupled via a local interface1550. The local interface 1550 can be, for example but not limited to,one or more buses or other wired or wireless connections, as is known inthe art. The local interface 1550 may have additional elements, whichare omitted for simplicity, such as controllers, buffers (caches),drivers, repeaters, and receivers, to enable communications. Further,the local interface 1550 may include address, control, and/or dataconnections to enable appropriate communications among theaforementioned components.

The processor 1510 is a hardware device for executing software 1600,particularly that stored in the memory 1520. The processor 1510 can beany custom made or commercially available processor, a centralprocessing unit (CPU), an auxiliary processor among several processorsassociated with the computer 1500, a semiconductor based microprocessor(in the form of a microchip or chip set), a macroprocessor, or generallyany device for executing software instructions.

The memory 1520 can include any one or combination of volatile memoryelements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM,etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape,CDROM, etc.). Moreover, the memory 1520 may incorporate electronic,magnetic, optical, and/or other types of storage media. Note that thememory 1520 can have a distributed architecture, where variouscomponents are situated remote from one another, but can be accessed bythe processor 1510.

The software 1600 in memory 1520 may include one or more separateprograms, each of which comprises an ordered listing of executableinstructions for implementing logical functions of the automatedadvertising system, as described below. In the example of FIG. 15, thesoftware 1600 in the memory 1520 defines the automated advertisingsystem functionality in accordance with the present invention. Inaddition, the memory 1520 may contain an operating system (O/S) 1560.The operating system 1560 essentially controls the execution of computerprograms and provides scheduling, input-output control, file and datamanagement, memory management, and communication control and relatedservices.

Functionality of the automated advertising system 1500 may be providedby a source program, executable program (object code), script, or anyother entity comprising a set of instructions to be performed. When asource program, then the program needs to be translated via a compiler,assembler, interpreter, or the like, which may or may not be includedwithin the memory 1520, so as to operate properly in connection with theO/S 1560. Furthermore, the automated advertising system 1500 can bewritten as (a) an object oriented programming language, which hasclasses of data and methods, or (b) a procedure programming language,which has routines, subroutines, and/or functions.

The I/O devices 1540 may include input devices, for example but notlimited to, a keyboard, mouse, scanner, microphone, or other device.Furthermore, the I/O devices 1540 may also include output devices, forexample but not limited to, a printer, display, or other device.Finally, the I/O devices 1540 may further include devices thatcommunicate via both inputs and outputs, for instance but not limitedto, a modulator/demodulator (modem; for accessing another device,system, or network), a radio frequency (RF) or other transceiver, atelephonic interface, a bridge, a router, or other device.

When the automated advertising system 1500 is in operation, theprocessor 1510 is configured to execute the software 1600 stored withinthe memory 1520, to communicate data to and from the memory 1520, and togenerally control operations of the computer 1500 pursuant to thesoftware 1600.

When the automated advertising system 1500 is implemented in software,as is shown in FIG. 15, it should be noted that the automatedadvertising system 1500 can be stored on any computer readable mediumfor use by or in connection with any computer related system or method.In the context of this document, a computer readable medium is anelectronic, magnetic, optical, or other physical device or means thatcan contain or store a computer program for use by or in connection witha computer related system or method. The automated advertising system1500 can be embodied in any computer-readable medium for use by or inconnection with an instruction execution system, apparatus, or device,such as a computer-based system, processor-containing system, or othersystem that can fetch the instructions from the instruction executionsystem, apparatus, or device and execute the instructions. In thecontext of this document, a “computer-readable medium” can be any meansthat can store, communicate, propagate, or transport the program for useby or in connection with the instruction execution system, apparatus, ordevice.

The computer readable medium can be, for example but not limited to, anelectronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, device, or propagation medium. Morespecific examples (a nonexhaustive list) of the computer-readable mediumwould include the following: an electrical connection (electronic)having one or more wires, a portable computer diskette (magnetic), arandom access memory (RAM) (electronic), a read-only memory (ROM)(electronic), an erasable programmable read-only memory (EPROM, EEPROM,or Flash memory) (electronic), an optical fiber (optical), and aportable compact disc read-only memory (CDROM) (optical). Note that thecomputer-readable medium could even be paper or another suitable mediumupon which the program is printed, as the program can be electronicallycaptured, via for instance optical scanning of the paper or othermedium, then compiled, interpreted or otherwise processed in a suitablemanner if necessary, and then stored in a computer memory.

In an alternative embodiment, where the automated advertising system1500 is implemented in hardware, the automated advertising system 1500can be implemented with any or a combination of the followingtechnologies, which are each well known in the art: a discrete logiccircuit(s) having logic gates for implementing logic functions upon datasignals, an application specific integrated circuit (ASIC) havingappropriate combinational logic gates, a programmable gate array(s)(PGA), a field programmable gate array (FPGA), etc.

In accordance with the present invention, the automated advertisingsystem 1500 provides a user interface for allowing a user to interactwith the automated advertising system 1500. One or more of manydifferent communication capabilities may be provided for user interfaceimplementation. As an example, the user interface may be provided as acomputer program, a Web form, or electronic mail, which allowsadvertisers to choose their requested requirements for desiredadvertisement content. Interaction with the user interface may beprovided via the I/O devices 1540.

FIG. 16 is a schematic diagram further illustrating functional blocksrepresenting functionality defined by the software 1600 of FIG. 15, inaccordance with a first exemplary embodiment of the invention.

User Interface Manager

As is shown by FIG. 16, the software 1600 defines a user interfacemanager 1610. The user interface manager 1610 allows for providing ofadvertisement effect criteria to a user of the automated advertisingsystem 1500. Examples of such criteria include, but are not limited tothe following.

-   -   a time slot for the advertisement placement (e.g., 8 pm-10 pm)    -   a geographic region for the advertisement    -   duration of the advertisement airing in terms of calendar dates    -   desired channel or channels for the advertisement broadcasting    -   possible desires for specific programs/content in which the        advertisements will be included    -   number of airings desired in the time slot or during a day or        any other time unit    -   number of individual viewings or individual viewers desired by        the advertiser    -   demographic viewer profile or profiles of the desired audience        (e.g., males 25-50 high income, females 25-40 with children,        etc.)    -   psychographic profile of viewers    -   individual advertisement slot for the airing of the        advertisement    -   location of the advertisement in the slot (e.g., first, last,        second, etc.)    -   suggested price for the airing or for each individual exposure.        Of course, many other criteria may be provided for selection by        the user/advertiser. In fact, the advertiser may select one or        more combinations of the criteria to obtain a desired effect for        their advertisement. The advertiser may also arrange the        suggestions by priority or assign each possibility a value or        utility function.

The user interface manager 1610 provides user selection capabilitythrough one or more options. As an example, automated forms may beprovided by the user interface manager 1610. Such automated forms maybe, for example, Web forms containing different fields for selectionand/or completion by the advertiser, or others. Examples of such fieldsmay include, but are not limited to, the following fields.

-   -   1. the advertiser identifier (e.g., email address or any other        identification)    -   2. the campaign details (e.g., campaign name, client, etc.)    -   3. the geographic regions for the campaign, chosen using a map        interface, zip codes, or other means    -   4. the advertisements in the campaign chosen using some        identification, or directly uploaded (as video files) using the        web interface    -   5. the maximum bid price for the campaign and/or for each        exposure to the public    -   6. the desired number of airings and/or exposures    -   7. the target audience using any combination of demographic        and/or psychographic profiles    -   8. the campaign dates    -   9. the desired channel or channels for the campaign    -   10. the desired programs in which the advertisements will be        places    -   11. the desired time slots for the airing of the advertisements    -   12. the desired location of the advertisement on the        advertisement slot (e.g., first, last, middle)        It should be noted that certain of the fields may possibly be        duplicated with different bid values. As an example, fields 9-12        may be repeated several times with different bids assigned to        different channel/program/slot combinations. Similarly,        different values may be assigned to different target audience        profiles. The combination of different fields selected and        defined provides an advertisement campaign, for which a bid        price may be provided.

Advertisement Auctioning Manager

As is shown by FIG. 16, the software 1600 also defines an advertisementauctioning manager 1620. The advertisement auctioning manager 1620allows for providing of an optimal placement of requested advertisementsbased upon advertisement effect criteria provided and bid price, so asto optimize revenue for a network operator.

Specifically, after several requests for campaigns and appropriate bidshave been made, the placement of advertisements should be determined. Amechanism for such placement combines an optimization algorithm,attempting to find an optimal placement of the requested advertisements,based upon the preferences of the advertisers combined with the bidvalues suggested by the advertisers. The optimization algorithm finds anexact or approximate placement of part or all of the suggestedadvertisements such that the revenue is maximized, by searching thecombination of advertisement placement for each set top box and airingtime as to maximize the revenue for the network operator.

In accordance with an alternative embodiment of the invention, thebidding process may also be limited in duration or to any number (one ormore) of bids, after which the winners will be notified, and anotherbidding process may begin with the remaining, unsold time slots.

In the case of one request (i.e., campaign) per advertiser the maximumrevenue may be achieved by direct competition. For each combination ofsome or all of date, population profile, geographic region and timeslot, there may exist one or more possible placements, depending on thenumber of single advertisements that may be aired during the timededicated to advertisements in the desired channel/date/time of daycombination. If there are M advertisements that may be placed underthese constraints, the highest M bids will be aired and all the restrejected. It is also possible to auction some of the slots by thismechanism and some by any other mechanism or criteria, for example, theslots may be divided into a group being sold to bidders using the hereindescribed auctioning mechanism and a group sold for a constant price.

If the advertisements are of different lengths and the advertisementtime slot is of a constant, known length, the problem of optimalplacement becomes algorithmically difficult, and should be approximatedby any approximation algorithm, unless the number of bidders is smalland exhaustive searching may be conducted. A possible approximationmethod uses the known approximation scheme of adding the advertisementsone by one sorted by decreasing revenue per second. That is, theadvertisement with highest bid price per second is placed, the secondhighest is placed next, and so on, until no extra time for anotheradvertisement is left during the time interval. This approximationscheme is beneficial since, for example, the scheme may guarantee atleast half the maximum revenue obtained by any optimal placement.

The order of advertisement airing in the commercial break (if more thanone advertisement is aired) may be based on the advertisers' preferencesor may be based on their bids with highest bid winning the betterlocation (such as closer to the beginning of the commercial break).

In case each advertiser may include more than one option for theadvertisement airing, such as several different alternatives foradvertisement placement suggested by the advertisers, the problem maybecome algorithmically complex again. The optimal placement may still befound, for example, using a brute force approach of checking allpossible placements when the number of conflicting suggestions is nottoo high, or using any standard approximation algorithm for constraintsatisfaction when the number of placements is large. Approximation ofthe constraint satisfaction problem may be obtained, e.g., by assigninga weight for each constraint broken, and executing a local searchalgorithm, such as A* or simulated annealing to find an approximatesolution. One having ordinary skill in the art would know of otherapproximation techniques and such techniques are intended to be includedwithin the present invention.

A possible alternative to revenue maximization is using game theoreticconsiderations to design a truthful auctioning mechanism that will leadthe advertisers to a Nash equilibrium in which each will prefer to bidthe real value of the advertisement. A possible mechanism will bediscussed under “the bonus mechanism”. One example of such an auctioningmechanism is the Vickrey-Clarke-Groves, which is discussed hereafter.

The automated advertising system may directly interact with abroadcasting, multicasting, or unicasting system, such as a head end, toallow for automatic placement of winning advertisements in thebroadcasted content.

Billing Manager

As is shown by FIG. 16, the software 1600 also defines a billing manager1630. For any aired advertisement the advertiser should be billedaccording to the bid of the bidder, and possibly other bidders, as wellas according to the level at which the request of the advertiser wassupplied and the actual viewership of the advertisement. The billingmanager 1630 automatically collects information on the bids and requestsof the advertisers for determining billing.

As an example consider the case that an advertiser has requested acertain campaign for a period of two weeks requesting that each of twoadvertisements is aired on a certain channel, in prime time, and atleast three times. If, using the advertising auctioning manager 1620, orby any other decision method, the bid was accepted, and theadvertisement was actually aired (or, possibly, is scheduled to beaired) the bidder is charged with the amount bid. It is also possiblethat a lower amount can be charged based upon some game theoreticmechanism, such as the ones discussed with regard to a bonus mechanismmentioned below, or any other possible bonus mechanism.

As a more advanced and effective billing policy, the billing manager1630 may provide billing capability based on actual total viewership ortargeted viewership. In this case, the billing is based upon a systemcapable of identifying the set top box in which the advertisement or theprogram within which it was aired was provided. As previously mentionedwithin the present description, watching of a program is the same as aviewer profile consuming content. Determining in which set top boxes anadvertisement was aired can be performed by reviewing the set top boxsignature for set top boxes to which the advertisement has beenprovided. In this case, billing is performed after the airing of theadvertisement or the whole advertising campaign, with the possibleexception of a down payment based on the anticipated audience.

Billing by targeted viewership is based upon the present system andmethod being capable of identifying not only the set top boxes to whichthe advertisement was provided, but also the profiles of the viewersassociated with these set top boxes and possibly the profiles of thespecific viewers that watched the advertisement when it was aired.Billing by targeted viewership may be achieved either by rating data bycalculating the targeted rating at the time of airing (both methodsdiscussed above herein), or by a survey conducted after theadvertisement airing.

Billing by targeted viewership may be performed automatically by thebilling manager 1630 based on inference of the viewer profile based onsupervised or unsupervised learning. Another example of billing bytargeted viewership by rating data includes using the content to profileassignment method. Specifically, profiles of specific viewers thatconsumed content of a set top box may be determined by performing thepreviously described content to profile assignment, which provides anidentification of what content is being consumed by what profile. Thisinformation may be used in providing a more accurate billing than thecurrent state (where the billing is based upon predicted rating for aprogram based on past rating information), where the advertising bill isdirectly associated with which advertisements had viewers of a certainprofile view the advertisement.

In the case of billing by targeted or general viewership, the billing isbased on price suggested per viewing, or per individual viewer,multiplied by the number of viewers. This price may be different fordifferent viewer profiles and also may be limited by a minimum and/or amaximum value. The following provides an example of billing by targetedor general viewership. Consider that a toy store bids $0.05 per eachviewing of its advertisement by a female with high income with youngchildren living in Cambridge, Mass. The store also bids $0.02 per eachviewing of its advertisement by a medium income female of the samecharacteristic up to a maximum of $1000. The billing for the store isthen based on the bid value multiplied by the number of viewings, and islimited by the maximum.

It should be noted that the billing manager 1630 may also provide thecapability of receiving payment for bills incurred by the advertiser. Asan example, the advertiser may make payment for advertisements via theInternet.

Bonus Manager

As is shown by FIG. 16, the software 1600 also defines a bonus manager1640. To increase the incentive of the advertisers to declare the actualvalue of the advertisement to them, a game theoretic approach of bonusesmay be used. Different known mechanisms used to increase actual valuedeclaration, known as truthful mechanisms, include the Vickery auctionand its generalization, the VCG (Vickrey-Clarke-Groves) mechanism, aswell as generalized second-price auctions, or any other game theoreticapproach.

The following provides a brief example of the VCG mechanism. As anexample consider several advertisers bidding for the same spot. Thehighest bidder will win. However, this bidder will only be charged theprice of the second highest bid. This mechanism ensures that the optimalstrategy per bidder is to bid the actual value of the advertisement,i.e., the utility of the airing of the advertisement.

The VCG mechanism allows the generalization of this method to moregeneralized settings. For example, if m spots are available, the mhighest bidders will win, and they will all pay the bid of the m+1highest bidder. Similar considerations apply in cases of differentvalues per bidder for each spot or in the case of different bids forlong and short advertisements or different bids for different audienceprofile sections. In either case a mechanism may be built of a bonus inthe billing of the advertisers such that the optimal strategy of theadvertisers is to bid the true value of the advertisement to them.

Combining a bonus mechanism in the automatic billing system can increasethe revenue by encouraging the bidders to bid the true value of theadvertisement to them, knowing that this is the rational decision interms of guaranteeing optimal revenue to each bidder.

EXAMPLE

Consider the following scenario, which illustrates a possibleapplication of the combination of all the above:

A single advertisement spot (e.g., the Superbowl advertisement) is beingauctioned by a cable company. Several advertisers use the Web interfaceto make the following bids:

Advertiser A bids 5 cents per viewing by males of all ages in Manhattan.

Advertiser B bids 4 cents per viewing by males and females of all agesin Manhattan and Queens.

Advertiser C bids 3 cents per viewing by males of all ages in Queens and5 cents per viewing by females of all ages in Queens.

Advertiser D bids 2 cents per viewing by males and females of all agesin Manhattan and Queens.

The following will be aired: For identified males in Manhattanadvertisement A will be aired. For identified females in Manhattan andmales in Queens and identified males in Queens, advertisement B will beaired. For identified females in Queens, advertisement C will be aired.In a case in which no positive identification can be made, the systemmay choose, for instance, the suggestion, X, that maximizes the value:P_(male)R_(male) ^(X)+P_(female)R_(female) ^(X), where P_(male) is theprobability, as estimated by the system that a male is watching via acertain set top box at the moment of advertisement airing and R_(male)^(X) is the bid made by an advertiser of X for a male viewing, andrespectively for females.

Billing is based on the number of viewers identified by the system,multiplied by the bid per viewer. If, as a bonus mechanism, for example,a Vickery auction is used, the following billing will occur. Forpurposes of this example, we assume the following rating: 100,000identified male viewers and 150,000 identified female viewers inManhattan; and 120,000 identified male viewers and 130,000 identifiedfemale viewers in Queens. As a result, advertiser A will be charged 4cents per male viewer in Manhattan (the value of the second highest bidfor that audience—by advertiser B), and thus will pay100,000*0.04=$4,000. In addition, advertiser B will pay 2 cents forevery female viewer in Manhattan and 3 cents for every male in Queensfor a total of 150,000*0.02+120,000*0.03=$6,600. Further, advertiser Cwill pay 4 cents for every female in Queens for a total of130,000*0.04=$5,200.

When the present advertisement auctioning system makes no positiveidentification, or no identification at all to compensate for cases ofmistaken identification, the system may use the number of estimatedactual viewings, (i.e, the sum on the probabilities of identification ofthe target audience), as estimated by the system, rather than the numberof identified individuals.

FIG. 17 is a flow chart 1700 further illustrating functionality providedby the present advertisement auctioning system 1500, when advertisementis to be provided to a specific desired targeted viewership. As shown byblock 1710, by using the system described with regard to supervised andunsupervised learning mentioned above, viewer profiles associated witheach set top box are identified.

As shown by block 1720, advertisement effect criteria is provided to auser of the automated advertising system 1500. It should be noted thatin accordance with this embodiment of the invention, viewer profiles areincluded among the advertisement effect criteria, or criteria defining aviewer profile may be included. The user may then define anadvertisement campaign by selecting from advertisement fields anddefining a bid (block 1730). As an example, an advertiser may selectsome or all of: desired target audience profiles and geographiclocation; dates of the campaign; airing times; and desired channels. Itshould be noted that functionality associated with blocks 1720 and 1730has been defined within the section of the detailed description entitleduser interface manager. It should also be noted that, in accordance withan alternative embodiment of the invention, an advertisement may beuploaded to the advertisement auctioning system for future use.

As shown by block 1740 the system selects the advertisement winnersaccording to the highest bidders for the available time interval foreach combination of, for example, but not limited to, geographiclocation and profile. It should be noted that functionality associatedwith blocks 1740 has been defined within the section of the detaileddescription entitled advertisement auctioning manager. Advertisementwinners may then be notified, as shown by block 1750. Such notificationmay be provided by many different methods such as, but not limited to,using electronic mail or short message service.

As shown by block 1760, the system then provides the advertiser providedadvertisement to the targeted viewers. As an example, the present systemprovides concurrent advertising to defined targeted viewers inaccordance with the advertising campaigns of the winning advertisers.

The advertisement auctioning system then calculates billing for thewinner, as shown by block 1770. The process of calculating billing hasbeen described above, and is further illustrated with regard to FIG. 18,which is described hereafter. As shown by block 1800, the advertisementauctioning system then bills the advertiser in accordance with thecalculated billing. As an example, the advertiser may be billedelectronically and the advertiser may pay electronically.

FIG. 18 is a flow chart 1772 further illustrating examples offunctionality that may be performed during billing calculation. As shownby block 1774, the real time targeted rating functionality describedherein identifies actual current viewer profiles currently consumingcontent. The video splicer may then be used by the advertisementauctioning system to forward advertisements intended for specific viewerprofiles, to set top boxes associated with the specific viewer profiles(block 1776).

As shown by block 1778, profiles of specific viewers that consumedadvertisements provided to the set top box by the advertisementauctioning system may be determined by performing the previouslydescribed content to profile assignment, which provides anidentification of what content is being consumed, for example,advertisement, by what profile. This data may be provided as updates toadvertisers so that the advertisers can keep track of the progress oftheir advertising campaign.

As shown by block 1780, a total number of viewers of the desired profilethat consumed (e.g., watched) the advertisement is calculated. Thisdetermination may be made by adding the viewer profiles determined to becurrently consuming the advertisement.

It should be noted that, in accordance with an alternative embodiment ofthe invention, the bonus mechanism previously described may be used incalculation of billing. As an example, the Vickery auction methodpreviously described may be used.

In accordance with an alternative embodiment of the invention, theprocess of defining an advertising campaign, as provided by anadvertiser, may instead be performed without a computer. As an example,the advertising campaign may be described to an individual, who may, inturn, enter the campaign criteria within the present advertisementauctioning system.

It should be emphasized that the above-described embodiments of thepresent invention are merely possible examples of implementations,merely set forth for a clear understanding of the principles of theinvention. Many variations and modifications may be made to theabove-described embodiments of the invention without departingsubstantially from the spirit and principles of the invention. All suchmodifications and variations are intended to be included herein withinthe scope of this disclosure and the present invention and protected bythe following claims.

1. A method of auctioning targeted advertisement placement for videoaudiences, comprising the steps of: receiving one or more advertisingcampaign, where each advertising campaign is defined by one or moreadvertisement effect criteria, and where each advertising campaign isfor providing one or more advertisement to one or more viewer profile;receiving at least one bid for at least one of the one or moreadvertisement campaign; determining an optimal placement of a requestedadvertisement based upon the advertisement effect criteria and bidprices provided, so as to optimize revenue; and billing an advertiseraccording to a level at which a request of the advertiser, as defined byan associated advertising campaign, was supplied and actual viewershipof the one or more advertisement associated with the advertisingcampaign.
 2. The method of claim 1, wherein the number of bids from asingle advertiser is limited to a predefined number of bids.
 3. Themethod of claim 1, wherein the advertisement effect criteria is providedwith priorities identifying which of the advertisement effect criteriais more important.
 4. The method of claim 1, wherein a time limit isprovided for allowing the receiving of a bid for the at least one of theone or more advertisement campaign.
 5. The method of claim 1, wherein acommercial break has multiple advertisement locations available, andwherein the step of determining an optimal placement of a requestedadvertisement considers the multiple advertisement locations available.6. The method of claim 1, further comprising the step of identifying oneor more viewer profile associated with one or more set top box, whereineach of the one or more viewer profile is a potential recipient of theone or more advertisement.
 7. The method of claim 1, wherein theadvertisement effect criteria includes at least one viewer profile. 8.The method of claim 1, wherein the advertisement effect criteriaincludes at least one geographical location.
 9. The method of claim 1,wherein each advertising campaign is associated with one advertiser, andwherein the method further comprises the step of selecting anadvertising campaign from the one or more advertising campaigns forexecution, resulting in the one or more advertisement associated withthe selected advertising campaign being forwarded to a targeted viewerprofile defined in the selected advertising campaign.
 10. The method ofclaim 9, wherein the step of billing further comprises the steps of:identifying actual viewer profiles currently consuming content;determining viewer profiles that consumed the forwarded one or moreadvertisement; and calculating a total number of viewers of the viewerprofiles that consumed the forwarded one or more advertisement.
 11. Themethod of claim 1, wherein the step of billing further comprises using agame theoretic approach of bonuses to increase incentive of advertisersto bid an actual value of the advertisement to the advertiser.
 12. Asystem for auctioning targeted advertisement placement for videoaudiences, comprising: logic configured to receive one or moreadvertising campaign, where each advertising campaign is defined by oneor more advertisement effect criteria, and where each advertisingcampaign is for providing one or more advertisement to one or moreviewer profile; logic configured to receive at least one bid for atleast one of the one or more advertisement campaign; logic configured todetermine an optimal placement of a requested advertisement based uponthe advertisement effect criteria and bid prices provided, so as tooptimize revenue; and logic configured to bill an advertiser accordingto a level at which a request of the advertiser, as defined by anassociated advertising campaign, was supplied and actual viewership ofthe one or more advertisement associated with the advertising campaign.13. The system of claim 12, wherein the number of bids from a singleadvertiser is limited to a predefined number of bids.
 14. The system ofclaim 12, wherein the advertisement effect criteria is provided withpriorities identifying which of the advertisement effect criteria ismore important.
 15. The system of claim 12, wherein a time limit isprovided for allowing the receiving of a bid for the at least one of theone or more advertisement campaign.
 16. The system of claim 12, whereina commercial break has multiple advertisement locations available, andwherein the logic configured to determine an optimal placement of arequested advertisement considers the multiple advertisement locationsavailable.
 17. The system of claim 12, further comprising logicconfigured to identify one or more viewer profile associated with one ormore set top box, wherein each of the one or more viewer profile is apotential recipient of the one or more advertisement.
 18. The system ofclaim 12, wherein the advertisement effect criteria includes at leastone viewer profile.
 19. The system of claim 12, wherein theadvertisement effect criteria includes at least one geographicallocation.
 20. The system of claim 12, wherein each advertising campaignis associated with one advertiser, and wherein the system furthercomprises logic configured to select an advertising campaign from theone or more advertising campaigns for execution, resulting in the one ormore advertisement associated with the selected advertising campaignbeing forwarded to a targeted viewer profile defined in the selectedadvertising campaign.
 21. The system of claim 20, wherein billingfurther comprises: identifying actual viewer profiles currentlyconsuming content; determining viewer profiles that consumed theforwarded one or more advertisement; and calculating a total number ofviewers of the viewer profiles that consumed the forwarded one or moreadvertisement.
 22. The system of claim 12, wherein the logic configuredto bill further performs the step of using a game theoretic approach ofbonuses to increase incentive of advertisers to bid an actual value ofthe advertisement to the advertiser.